笨方法学 Java -10-异常处理
作者:谎言诞行    发布时间:2024年01月10日

0、前言

在程序代码的编写与运行时,总会出现一些让计算机出错的逻辑,称之为:异常。在计算机程序处理上,大部分的计算机语言都有一个称为“异常处理”的机制。异常大体上分为:编译时异常、运行时异常。在Java中,异常也是数据类型的一种。基础类名为java.lang.Exception


1、编译时异常

在代码编写完毕,保存后,在执行代码编译所暴露的异常信息,称为编译时异常。一般来说,这种异常都是语法问题(比如:有问题的变量、函数、中文符号等等)。如下图:

image.png

图中显示了一个红色的异常,因为这个方法 printlns 是不存在的。这时,要修复问题也很简单,将语法问题修复即可(写一个存在的函数名)。


2、运行时异常

这种异常一般指在程序编译通过后,执行该程序所发生的异常。如下图:

image.png

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

2.1 抛出异常

image.png

如上图,2个方法都不想处理异常,直接抛出。抛出的关键字是 throws


2.2 捕捉异常

在Java中,捕捉异常使用try…catch 语句或者 try…catch…finally语句。

image.png

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

image.png

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

image.png

参考代码如下:

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("资源释放处理完成。。。");
       }
    }
}


本章节结束

填写一种颜色的字符(不区分大小写),1分钟有效,点击图片刷新