笨方法学 Java -10-异常处理
0、前言
在程序代码的编写与运行时,总会出现一些让计算机出错的逻辑,称之为:异常。在计算机程序处理上,大部分的计算机语言都有一个称为“异常处理”的机制。异常大体上分为:编译时异常、运行时异常。在Java中,异常也是数据类型的一种。基础类名为java.lang.Exception
1、编译时异常
在代码编写完毕,保存后,在执行代码编译所暴露的异常信息,称为编译时异常。一般来说,这种异常都是语法问题(比如:有问题的变量、函数、中文符号等等)。如下图:

图中显示了一个红色的异常,因为这个方法 printlns 是不存在的。这时,要修复问题也很简单,将语法问题修复即可(写一个存在的函数名)。
2、运行时异常
这种异常一般指在程序编译通过后,执行该程序所发生的异常。如下图:

运行时异常,一般有2种处理方式:抛出异常、捕捉异常。
2.1 抛出异常

如上图,2个方法都不想处理异常,直接抛出。抛出的关键字是 throws 。
2.2 捕捉异常
在Java中,捕捉异常使用try…catch 语句或者 try…catch…finally语句。

上图为单个异常捕捉,下面还有多层捕捉(临时变量e、e1、e2是在整个捕捉过程都有效的,所以不要写错地方):

另外,还有一个特殊处理,如果程序不管是否发生异常都要执行(比如资源释放),则书写finally块。

参考代码如下:
package cn.com.mytest.test;
public class App4 {
public static void testByZero() throws Exception {
int a = 0;
int b = 1;
System.out.println(a/b);
System.out.println(a/a);
System.out.println(b/b);
}
public static void main(String[] args) {
try {
App4.testByZero();
}catch(ArithmeticException e1) {
System.out.println("捕捉到==算术==异常,信息如下:"+e1.getMessage());
}catch(Exception e2) {
System.out.println("捕捉到==其他==异常,信息如下:"+e2.getMessage());
}finally {
System.out.println("资源释放处理完成。。。");
}
}
}本章节结束