异常是程序开发中的避不开的一个问题,特别是在大型应用的开发中,为了使程序能够保持稳定的运行,即使出错的时候,也能方便开发人员的根据错误信息快速定位出错位置,这需要我们必须熟悉异常的基本知识。
Java异常中的关键字:
throw、throws、try、catch、finally。下面一段代码简单介绍这几个关键字的应用场景
/*如果方法不进行异常处理,一定要用 throws 抛出*/
public static int div(int _x, int _y) throws Exception{
int result = 0;
try{
// 可能出异常的代码块
}catch(Exception e){
// 捕获异常并处理的代码块
e.printStackTrace(); // 打印异常信息
throw new Exception("异常A"); // 抛出一个自定义异常
}finally {
// 不管是否有异常都要执行的代码块
return result;
}
}
throw与throws的区别:
throw用于在一个方法内部抛出一个自己创建的异常,throws则是用在方法头的后面。用于告知该方法可能会抛出哪些异常给上层应用,注意此时上层应用必须在写代码的时候添加处理该异常的方法。
一个标准的基础Java异常处理案例:
class MyMath{
/*如果方法不进行异常处理,一定要用 throws 抛出*/
public staticint div(int _x, int _y) throws Exception{
int result = 0;
System.out.println("【开始】进行除法计算");
// 方式一
// try{
// result = _x / _y;
// }catch (Exception e){
// throw e;
// }finally {
// System.out.println("【结束】除法计算完毕");
// }
// 方式二(简写)
try{
result = _x / _y;
}finally {
System.out.println("【结束】除法计算完毕");
}
return result;
}
}
public class Main {
public staticvoid main(String[] args) {
try {
System.out.println(MyMath.div(10,0));
} catch (Exception e) {
e.printStackTrace();
}
}
}
结果:
Exception与RuntimeException的区别:
RuntimeException的类继承关系:
java.lang.Object
java.lang.Throwable
java.lang.Exception
java.lang.RuntimeException