异常

try{
return 4/0;
}catch(Exception e){
return 1;
}finally{
return 2;
}
返回为:2

异常方式比较

  1. 运行时异常,有的异常无法再编译的时候被监测到,如除法
public class chufa {
    public static void main(String[] args){
        chufa c = new chufa();
        c.method1();
    }

    public void method1(){
        int a = 4;
        int b=0;
        int c = a/b;
    }
}

这时我们如果调用,就会报错:
Exception in thread “main” java.lang.ArithmeticException: / by zero
at MyExcep.chufa.method1(chufa.java:17)
at MyExcep.chufa.main(chufa.java:9)

  1. throws异常
    throws异常,在我理解就是把异常交给调用该方法的方法处理,如果是main函数直接throws异常,那就是报错咯
    这张情况,一般可以直接抛出异常,或者说我不想抛出异常,只想记录到log
    直接抛出:
public class chufa {
    public static void main(String[] args){
        chufa c = new chufa();
        try{
            c.method1();
        }catch (Exception e){
            e.printStackTrace();
        }
    }

    public void method1() throws Exception{
        int a = 4;
        int b=0;
        int c = a/b;
    }
}

记录到log:

public class chufa {
    public static void main(String[] args){
        chufa c = new chufa();
        try{
            c.method1();
        }catch (Exception e){
            System.out.print("我将记录到log");
        }
    }

    public void method1() throws Exception{
        int a = 4;
        int b=0;
        int c = a/b;
    }
}
  1. throw异常
    这边我们可建自定义异常~

自定义异常:

异常类:

public class MyExcep1 extends Exception{
    public MyExcep1(String msg){
        super(msg);
    }
}

测试类:

public class testMyExcep1 {
    public static void main(String[] args) throws MyExcep1 {
        if(true){
            throw new MyExcep1("我要报错了");
        }
    }
}

打印:
Exception in thread “main” MyExcep.MyExcep1: 我要报错了
at MyExcep.testMyExcep1.main(testMyExcep1.java:10)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值