Java异常处理

注意:
 *    1.当程序可能出现多种异常,而且又要为这些异常一一处理时,后面依次列写catch语句块
 *    2.但所列写的catch应该满足从子类到父类的异常处理,如上面,第一和二两个异常都是Exception的子类
 *    3.finally语句跟在catch语句后面,用来实行一些出现异常后要进行的处理
 *    4.处理运行时异常时,采用逻辑去合理规避,同时辅助try_catch处理
 *    5.在多重catch后面,可以加上一个catch(Exception e)癞处理可能被遗漏的异常
 *    6.对于不确定的代码,可以加上try_catch,处理潜在的异常
 *    7.尽量去处理异常,切忌只是简单的调用printStackTrace()去打印输出
 *    8.尽量添加finally语句块去释放占用的资源

代码实例:

public class Try_catch {
    public static void main(String[] args){
        Scanner input=new Scanner(System.in);
        try{
            System.out.println("请输入第一个数:");
            int one=input.nextInt();
            System.out.println("请输入第二个数:");
            int two=input.nextInt();
            System.out.println("两数相除得:"+one/two);
        }catch(InputMismatchException e){
            e.printStackTrace();
            System.out.println("请输入数字!!!");
        }catch(ArithmeticException e){
            System.out.println("除数不能为零!!!");
            e.printStackTrace();
        }catch(Exception e){
            e.printStackTrace();
            System.out.println("未知的异常!!!");
        }finally{
            System.out.println("finally语句块用来善后,比如出现异常后关闭一些文件等");
        }
        System.out.println("程序结束!");
    }

}
自定义异常:

注意:自定义异常类必须继承于与之相近的异常类或是Exception
【由于有了含参的构造器,编译器便不会再给分匹配无参构造器,而有时候需要使用,所以可以再添加一个无参的构造器】

public class Custom_Exception extends Exception{
    public Custom_Exception(){
    }
    public Custom_Exception(String message){//含参的构造器
        super(message);
    }
}
异常链:

initCause()方法对异常进行包装的,目的为了出了问题的时候能够追根究底。因为一个项目,越往底层,可能抛出的异常类型会用很多,如果你在上层想要处理这些异常,你就需要挨个的写很多catch语句块来捕捉异常,这样是很麻烦的。如果我们对底层抛出的异常捕获后,抛出一个新的统一的异常,会避免这个问题。

public class Exception_link {

    public static void main(String[] args) {
        Exception_link cs=new Exception_link();
        try{
            cs.test2();
        }catch(Exception e){
            e.printStackTrace();
        }
    }

    public void test1() throws Custom_Exception{
        //调用自定义的异常类
        throw new Custom_Exception("喝酒别开车!");
    }

    public void test2(){
        try{
            test1();
        }catch(Custom_Exception e){
            //构造RuntimeException
            RuntimeException newExc=new RuntimeException("司机一滴酒,亲人两行泪");
            newExc.initCause(e);  
            //将原异常包装,抛出运行时异常                                          
            throw newExc;
        }
    }
}
基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明,该项目是个人毕设项目,答辩评审分达到98分,代码都经过调试测试,确保可以运行!欢迎下载使用,可用于小白学习、进阶。该资源主要针对计算机、通信、人工智能、自动化等相关专业的学生、老师或从业者下载使用,亦可作为期末课程设计、课程大作业、毕业设计等。项目整体具有较高的学习借鉴价值!基础能力强的可以在此基础上修改调整,以实现不同的功能。 基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指挥8种手势识别源码+数据集+模型+详细项目说明基于pytorch实现中国交通警察指
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值