Exception handling is divided into passive handling (if you can't handle it yourself, throw throws at the place where it is called, the exception is not resolved, just thrown) and active handling (exception catching, Catching exceptions is achieved through try-catch statements or try-catch-finally statements).
(Recommended tutorial: java introductory tutorial)
Negative processing:
Syntax:
public void m1() throws 异常类名1,异常类名2{}
Allow compilation to pass.
When the exception thrown is a non-runtime (checked) exception, the caller who calls this method must handle it.
When the exception thrown is a runtime (unchecked) exception, it can be handled or not.
Active processing: (Exception catching)
Catch the exception directly and handle it.
Syntax:
try{ //异常代码 }catch(异常类名 引用名){ //当异常产生执行的代码 }
The catch code block after try can only match one successfully.
When the exception declared after catch is a parent class, the exceptions it can catch are all subclass exceptions of itself (a manifestation of polymorphism).
Note: When the catch code block catches an exception, the subclass exception must be defined before the parent class exception, otherwise a compilation error will occur.
(Video tutorial recommendation: java video tutorial)
finally code block: The code in this code block will definitely be executed and is often used to close resources.
try{ }catch(){ }finally{ //无论是否产生异常,一定会去执行的代码 }
Note: Do not define a return statement in the finally code block.
Example:
package work; import java.io.EOFException; import java.io.FileNotFoundException; import java.io.IOException; import java.sql.SQLException; import java.util.Scanner; /** * @author 超伟 * @date 2019年5月13日 * @version 1.0.0 */ public class t4 { public static void main(String[] args) { System.out.println("main1"); int n; Scanner sc = new Scanner(System.in); n = sc.nextInt(); ma(n); System.out.println("main2"); } public static void ma(int n){ try { System.out.println("m1"); mb(n); System.out.println("m2"); } catch (EOFException e) { //e.printStackTrace(); System.out.println("EOFException "); } catch (IOException e) { System.out.println("IOException e111"); }catch (SQLException e) { System.out.println("SQLException"); }catch (Exception e) { System.out.println("Exception"); }finally{ System.out.println("in finally"); } } public static void mb(int n) throws Exception { System.out.println("mb1"); if (n==1) { throw new EOFException(); } if (n==2) { throw new FileNotFoundException(); } if (n==3) { throw new SQLException(); } if (n==4) { throw new NullPointerException(); } System.out.println("mb2"); } } 程序运行结果为: main1 1 m1 mb1 EOFException in finally main2
The above is the detailed content of How to handle exceptions in java. For more information, please follow other related articles on the PHP Chinese website!