【java基础--异常】

文章介绍了Java中的异常处理机制,包括try-catch-finally块用于捕获和处理异常,以及如何通过throw关键字主动抛出异常。在捕获异常时,应按照异常类型的从具体到抽象的顺序进行。同时,方法可以使用throws声明不处理异常,将异常传递给调用者处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

捕获异常

  • try { //try监控区域

    } catch (异常类型) { //catch 捕获异常

    } finally {//处理善后工作

    }

捕获多个异常,需从小到大捕获

public class Test {
    public static void main(String[] args) {
        int a = 1, b = 0;
        try {//try监控区域
            System.out.println(a / b);
        } catch (ArithmeticException e) {//catch 捕获异常
            System.out.println("程序异常");
        } finally {//处理善后工作
            System.out.println("finally");
        }
        //程序异常
        //finally
        
        try {
            System.out.println(a/b);
        }catch (Error e){
            System.out.println("Error");
        }catch (Exception e){
            System.out.println("Exception");
        }catch (Throwable e){
            System.out.println("Throwable");
        }finally {
            System.out.println("finally");
        }
        //Exception
        //finally
    }
}

抛出异常

  • throw 在方法体中
public class Test2 {
    public static void main(String[] args) {
        new Test2().test(1,0);
    }
//    Exception in thread "main" java.lang.ArithmeticException
//    at oop.异常.Test2.test(Test2.java:10)
//    at oop.异常.Test2.main(Test2.java:5)
    public void test(int a,int b){
        if (b==0){
            throw new ArithmeticException();//主动的抛出异常,一般在方法中使用
        }
        System.out.println(a/b);
    }
}
  • throws 在方法名之后

    假设方法处理不了异常,可以throws上抛异常
    而try catch 处理异常可以让程序继续运行
    
public class Test2 {
    public static void main(String[] args) {
        try {
            new Test2().test(1,0);
        } catch (ArithmeticException e) {
            System.out.println("错误");
        }
    }

    //假设这个方法处理不了异常,上抛异常
    public void test(int a,int b) throws ArithmeticException{
        if (b==0){
            throw new ArithmeticException();//主动的抛出异常,一般在方法中使用
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值