Java异常

常的分类:

  • Throwable:异常基类
    • Error:错误
      子类。。。

    • Exception:异常

      • RuntimeException: 运行期异常
        子类。。。
      • 非RuntimeException: 编译器异常
    • throw:抛出存在的异常
      1.throw必须写在方法的内部,只能写一个异常
      2.throw后边new的对象必须是Exception或者Exception的子类对象
      3.throw抛出编译期的异常对象,我们就必须处理这个异常,要么try。。。catch,要么throws抛出给调用者
      4.throw抛出运行期的异常对象,我们不处理这个异常,默认交给jvm处理

    • 异常的处理
      关键字:try、catch、finally、throw、throws

    1. throws:声明异常,交给jvm处理
      作用:方法内部抛出异常的时候,我们就必须处理这个异常
      使用格式:在方法声明时使用,可以同时声明对各异常,后面的代码不会执行
    2. try…catch…:人为处理异常
      异常捕获,后面的代码会执行
      代码:
    	try{
    			可能产生的异常
    	}catch(出现异常的名字  异常的变量名字){
    			处理方式
    	}finally{
    			无论是否出现异常都要执行
    	}
    
    注意:
    1.throws必须写在方法声明处
    2.声明的异常必须是Exception或者其子类
    3.方法内部如果抛出多个异常,throws也必须声明相同的异常
    4.在操作异常的时候可以进行解决try。。。catch,也可以继续抛出throws
    5.在多次异常一次捕获多次处理的时候,如果异常存在字父类关系,子类必须写在父类的上边
    6.如果存在return的情况,返回的finally中的结果

子类不能比父类更坏

判断是否为空的的一个方法:
Objects中的静态方法

public static <T> T requireNonNull(T obj)
public static <T> T requireNonNull(T obj, String str)

Throwable中的方法
1,String getMessage() 返回异常信息简短字符串
2,void printStackTrace() 获取异常的名称信息以及异常出现的位置。
3,String toString() 返回异常信息的字符串
4,void printStackTrace(PrintStream s) 可以把异常内容保存到日志文件中,方便后期查看。

自定义异常
1,定义了一个方法,检测成绩的等级,合法的成绩:0-150之间。
-很明显java没有对应的异常类,所以我们需要自定义一个异常来处理自定义逻辑出现的问题
2,自定义异常类

  • 继承Exception:自定义的异常就是一个编译器异常,如果方法内部抛了编译器异常,就得处理,要么throws,要么try…catch…
  • 继承RuntimeException:运行期异常可以交由jvm处理
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值