一.try ..catch语句
语法:
try{
被捕获的代码
}catch ( 异常类型 ){
对应解决方法
}
public class Test {
public static void main(String[] args) {
try{
int a = 1;
System.out.println(a);
}catch (Exception exception){
exception.printStackTrace();
}
}
}
二.多重try..catch语句
public class Test {
public static void main(String[] args) {
try{
int a = 1/0;
System.out.println(1);
}catch (NullPointerException exception){
System.out.println("空指针异常");
}catch (ArithmeticException e) {
System.out.println("除数异常");
}catch (ClassCastException e) {
System.out.println("类转换异常");
}
}
}
捕捉到异常直接跳入对应异常,try后续代码不会执行。
输出:
三.异常中断机制
public class Test {
public static void main(String[] args) {
try{
System.out.println(1);
int a = 1/0;
System.out.println(2);
System.out.println(3);
}catch (Exception exception){
exception.printStackTrace();
}
}
}
输出:
当第8行错误被捕获后,后续代码就被屏蔽了。
如何继续执行呢?
public class Test {
public static void main(String[] args) {
for(int i=0; i<5; i++){
try {
int a = 2/i;
System.out.println(a);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
输出:
异常处理完继续执行for循环内容