Java程序设计 异常

119 阅读2分钟

这是我参与2022首次更文挑战的第4天,活动详情查看:2022首次更文挑战

Java程序设计 异常

异常的概念

异常可导致程序中断,如果不对异常进行处理,则会导致程序中断,在程序的设计中考虑各种异常的发生,做好相应的处理,才能保证程序正常。

异常处理格式

try{
//需要处理异常的语句            
}catch (异常类){
//处理异常的语句
}finally {
//每次都执行的语句
}

如果try中产生了异常,则程序跳转到catch语句中找到匹配的进行处理

不管程序是否产生异常 都会执行到finally语句

finally块可省略

public class Hello {
    public static void main(String[] args) {
        int i=2;
        int j=0;
        try{
            int s=i/j;
        }catch(Exception e){
            System.out.println(e);
        }finally {
            System.out.println("测试finally");
        }
    }
}

image-20220118105049580

所有的异常对象都使用Exception接收

throws与throw

throws

定义方法时可以使用throws声明

标明此方法可能产生异常

使用throws声明的方法表示这个方法不处理异常

而是调用时处理

class Test{
    public int tt(int i,int j)throws Exception{
        int s=i/j;
        return s;
    }
}
public class Hello {
    public static void main(String[] args) {
        Test a = new Test();
        try {
            System.out.println(a.tt(2,0));
        }catch (Exception e){
            System.out.println(e);
        }
    }
}

image-20220119111655156

throw

throw可以直接抛出一个异常

直接抛出异常类的实例化对象

public class Hello {
    public static void main(String[] args) {
        try{
            throw new Exception("抛出异常测试");
        }catch (Exception e){
            System.out.println(e);
        }
    }
}

image-20220119113232613

自定义异常类

用户可以根据自己的需要定义自己的异常类,定义异常类,只需要继承Exception类(强制性处理)或者是RuntimeException类(选择性处理

class Test extends Exception{
    public Test(String msg){
        super(msg);
    }
}
public class Hello {
    public static void main(String[] args) {
        try{
            throw new Test("测试自定义异常类");
        }catch (Exception e){
            System.out.println(e);
        }
    }
}

image-20220119121045142

1-5行

自定义异常类继承Exception类

构造方法接收异常信息

调用父类的构造方法

6-14行

异常处理 抛出一个异常进行测试 输出异常提示

断言

断言是肯定某一个结果的返回值是正确的,如果最终此结果的返回值是错误的,则通过断言检查肯定会提示错误信息。

语法格式:

assert boolean 表达式;
assert boolean 表达式:详细信息;

如果boolean表达式的结果为true,则什么错误信息都不会提示,如果为false,则会提示错误信息;如果没有声明详细信息的描述,则系统会使用默认的错误信息提示方式。