异常try catch finally

异常:不正常,代码出现编译或运行时的错误

Throwable(最顶层)

Error:出现的不能够处理的严重问题

Exception:可以处理的问题

异常分类:

        运行时异常:RuntimeException的子类,可以选择处理或者不处理

        编译时异常:在编译时期必须处理,捕获或者抛出

        如果出现异常我们没有处理,jvm会帮我们进行处理,他会把异常的类型,原因还有位置显示在命令行并且还终止了程序,异常后面的代码将不在执行

捕获异常

        执行顺序:首先执行try语句,如果发现异常,异常下面的代码不在执行,直接跳入catch语句结束,整个try...catch结束

        如果没有发现异常,try语句执行结束后,整个try...catch结束,不再执行catch

多个catch之间的顺序:

        多个catch之间可以有多个子父类,平级之间没有顺序关系;如果有父类,父类必须放在最后面

包住 +右键+Surround With+Try/catch Block

        finally:一定执行,用于释放资源,收尾工作

try {
    //需要被检测的语句。
}
catch(异常类 变量) { //参数。
    //异常的处理语句。
}
finally {
    //一定会被执行的语句。
}

抛出异常:当我们没能力处理异常就抛出异常,可以抛出它的父类

关键字是throws 谁调用方法谁抛出异常

主方法抛出异常,jvm虚拟机帮我们抛出异常

throw:制造异常,并且结束方法

如果抛出(throw)的是编译时期异常,必须在方法声明处抛出(throws)

自定义异常:写一个类去继承Exception或者RuntimeException,然后实现多个构造方法

右键+Source+Generate Constructors from Superclass

Throwable常用方法:

        String getMessage()  返回此 throwable 的详细消息字符串

        String toString()  返回此 throwable 的简短描述

        void printStackTrace()  打印异常的堆栈的跟踪信息

public class ExceptionDemo4 {
    public static void main(String[] args) {
   
       
        try {
            System.out.println(2 / 0);
        } catch (ArithmeticException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
 
    private static void method() {
        try {
            System.out.println(2 / 0);
        } catch(ArithmeticException e) {
            //String getMessage() : 原因
            //System.out.println(e.getMessage());
           
            //String toString()  类型和原因
            //System.out.println(e.toString());
 
            //void printStackTrace():类型原因和位置
            e.printStackTrace();
        }
       
        //System.out.println("hello");
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值