这一章节我们来简单讨论一下异常参数以及捕获异常。
1.异常参数
在异常当中我们可以加入参数,从而使异常更加清晰。
package com.ray.ch10;
public class Test {
public static void main(String[] args) {
throw new RuntimeException("运行时异常");
}
}
输出:
Exception in thread "main" java.lang.RuntimeException: 运行异常
at com.ray.ch10.Test.main(Test.java:7)
从输出结果可以看见,我们可以通过参数传递一些信息给程序员,使得代码异常更加明确。
2.捕获异常
(1)try块
package com.ray.ch10;
public class Test {
public static void main(String[] args) {
try {
//dosomething
} finally {
}
}
}
注意:try块需要联合finally一起使用,其实这样就保证即便有异常,也会有最终的处理。
try只是尝试各种语句,然后有异常就会在异常点停止执行代码,最后有finally收尾,但是在这个过程里面不处理异常。(当然我们也可以把finally看作是一种处理)
package com.ray.ch10;
public class Test {
public static void main(String[] args) {
try {
throw new RuntimeException();
} finally {
System.out.println("dosomething");
}
}
}
(2)try catch
package com.ray.ch10;
public class Test {
public static void main(String[] args) {
try {
throw new RuntimeException("抛出运行时异常");
} catch (RuntimeException e) {
System.out.println("处理运行时异常");
e.printStackTrace();
} catch (Exception e) {
System.out.println("处理异常");
e.printStackTrace();
}
}
}
输出:
处理运行时异常
java.lang.RuntimeException: 抛出运行时异常
at com.ray.ch10.Test.main(Test.java:7)
从输出结果可以看到,处理异常的步骤:
(1)发现异常
(2)找到自己类型的异常,一般来说,异常的类型就已经是一个异常信息。
(3)处理异常
(4)抛出异常,并在异常地点断开代码的执行
注意:一般是先找到自己类型的异常,如果找不到,再向上转型。
3.异常处理的模型
异常处理模型分为两种:断开与恢复
我们上面演示的都是断开的处理模型,如果是恢复模型,则把try放到while里面,直到处理结果满意为止,但是这样增添了无数维护成本,因此最终大部分的情况都只是使用断开模型。
总结:这一章节简单讲述了异常参数以及捕获异常。
这一章节就到这里,谢谢。
-----------------------------------