问:Java异常处理机制,理解了吗?Java异常处理,真的掌握了吗?什么是自定义异常?catch体里遇到return 是怎么处理?finally 体里有return怎么处理?catch 和 finally 体里同时遇上 return 怎么办?几道例题,理清它们。
一、try catch语句
格式:(代码区如果有错误,就会返回到异常处理)
1 try{ 2 3 //代码区 4 5 }catch(Exception e){ 6 7 //异常处理 8 9 }
首先要清楚,异常有运行时异常和check异常:
运行异常不需要强制捕获,他们是RuntimeException的子类。check异常需要try、catch的异常处理。
可以调用API去查询一下,比如常见的RuntimException有IndexOUtOfBoundsException(索引过界)、NullpointerException(空指针异常)等。常见的check异常有IO异常、SQL异常、FileNotFoundException(日期转换异常)等。
严重的话,如果某个高频率访问的类没有try,出现异常会导致程序崩溃。而try则可以保证程序的正常运行下去,比如说:
1 try{ 2 int i = 1/0; 3 }catch(Exception e){ 4 ..... 5 }
小到一个计算,如果除数为0,则会报错,如果没有try的话,程序直接挂掉。用try的话,则可以让程序运行下去,并且输出为什么出错!
try catch
是捕捉try部分的异常,当你没有try catch的时候,如果出现异常则程序报错,加上try catch,出现异常程序正常运行,只是把错误信息存储到Exception里,所以catch是用来提取异常信息的,你可以在Catch部分加上一句System.out.println(e.ToString());,如果出现异常可以把异常打印出来。
代码实例:
1 public class TestEx1 { 2 public int add(int a, int b) { 3 return a + b; 4 } 5 6 public int dev(int a, int b) { 7 int c = a / b;// 这里有隐患 8 return c; 9 } 10 11 public static void main(String[] args) { 12 TestEx1 c = new TestEx1(); 13 int result = c.add(4, 9); 14 System.out.println("求和的结果是" + result); 15 try { // 防患于未然 16 int result_chu = c.dev(90, 0); 17 System.out.println("除的结果是" + result_chu); 18 } catch (Exception e) { 19 System.out.println("出错啦~"); 20 21 } 22 } 23 }
时间: 2024-10-13 08:20:42