- 捕获和处理异常
用try ……catch ……来捕获异常;
public class ExceptionDemo {
public static void main(String[] args) {
String str = "1212a";
try{
int a = Integer.parseInt(str);
}catch (NullPointerException e){
e.printStackTrace();
}catch (NumberFormatException e){
e.printStackTrace();
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}//捕获方法先小后大
System.out.println("程序出错");
}
}
finally语句必定会执行,可用于关闭一些接口
public class ExceptionDemo {
public static void main(String[] args) {
String str = "1212a";
try{
int a = Integer.parseInt(str);
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
return;
}finally{
System.out.println("即使有return,finally语句必定会执行,可用于关闭一些接口");
}
System.out.println("程序出错");
}
}
输出:
java.lang.NumberFormatException: For input string: “1212a”
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at com.gavin25.ExceptionDemo.main(ExceptionDemo.java:7)
即使有return,finally语句必定会执行,可用于关闭一些接口
2.throws :把异常向外面抛
public class ExceptionDemo {
public static void testThrows() throws NumberFormatException{
String str = "1212a";
int a = Integer.parseInt(str);
System.out.println("a");
}
public static void main(String[] args) {
try{
testThrows();
System.out.println("这里执行不到");
}catch (Exception e) {
// TODO: handle exception
System.out.println("这里处理异常");
e.printStackTrace();
}
System.out.println("程序出错");
}
}
输出:
这里处理异常
java.lang.NumberFormatException: For input string: “1212a”
at java.lang.NumberFormatException.forInputString(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at com.gavin25.ExceptionDemo.testThrows(ExceptionDemo.java:6)
at com.gavin25.ExceptionDemo.main(ExceptionDemo.java:13)
程序出错
throw
未完……