Java异常处理(I)

java异常处理的类

所有lang包中的类

这里写图片描述

常用的类和继承继承结构

这里写图片描述
可以看到这些类都直接或者间接继承自java.lang.Throwable类。当然有些子类非常不常用。一个类职业是Throwable类的子类才能够被异常处理机制识别。

java.lang.Throwable

主要子类

java.lang.Throwable类有两个直接子类:java.lang.Error,java.lang.Exception
这里写图片描述

主要方法

构造器:
方法描述
Throwable​()无参数构造方法
Throwable​(String message)用指定的详细信息message构造一个新的throwable。
message- 详细消息。 详细消息被保存以供以后通过getMessage()方法检索。
Throwable​(String message, Throwable cause)用指定的详细信息message和Throwable类型的cause构造一个新的throwable。
message- 详细消息(保存以供以后通过getMessage()方法检索)。
cause- 原因(保存以供以后通过getCause()方法检索)。 (空值是允许的,并指出原因不存在或未知。)
protected Throwable​(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace)四个参数的构造方法
message - 详细消息。 详细消息被保存以供以后通过getMessage()方法检索。
cause - 原因。 (空值是允许的,并指出原因不存在或未知。)
enableSuppression - 是否启用或禁用抑制
writableStackTrace - 堆栈跟踪是否可写
Throwable​(Throwable cause)构造一个具有指定原因和(cause == null?null:cause.toString())(通常包含原因的类和详细消息)的详细消息的新throwable。
cause - 原因。 (空值是允许的,并指出原因不存在或未知。)
所有方法:
类型方法名称方法描述
voidaddSuppressed​(Throwable exception)将指定的异常附加到为了传递此异常而被禁止的异常。
ThrowablefillInStackTrace​()填写执行堆栈跟踪。
ThrowablegetCause​()返回此throwable的原因,如果原因不存在或未知,则返回null。
StringgetLocalizedMessage​()创建这个throwable的本地化描述。
StringgetMessage​()返回此Throwable的详细详细
StackTraceElement[]getStackTrace​()提供对由printStackTrace()打印的堆栈跟踪信息的编程访问。
Throwable[]getSuppressed​()返回包含所有被压缩的异常的数组(通常由try-with-resources语句),以便传递此异常。
ThrowableinitCause​(Throwable cause)将此throwable的原因初始化为指定的值。
voidprintStackTrace​()打印这个throwable和它的backtrace到标准的错误流。
voidprintStackTrace​(PrintStream s)将这个throwable和它的backtrace打印到指定的打印流。
voidprintStackTrace​(PrintWriter s)将这个throwable和它的backtrace打印到指定的PrintWriter 。
voidsetStackTrace​(StackTraceElement[] stackTrace)设置将由getStackTrace()返回并由printStackTrace()和相关方法打印的堆栈跟踪元素。
StringtoString​()返回这个Throwable的一个简短的描述

java.lang.Error(程序无法处理的错误)

所有方法:

java.lang.Error的所有构造方法,以及普通方法都来自java.lang.Throwable,没有添加新的方法。

使用场景

程序出现无法处理的错误,这些错误大多是编译时和系统错误,和程序的本身没有关系,不能够被程序员通过代码处理,比如OutOfMemoryError。

java.lang.Exception(程序可以处理的异常)

所有方法:

java.lang.Exception的所有构造方法,以及普通方法都来自java.lang.Throwable,没有新添加的方法。

使用场景

在出现了除数为0(ArithmeticException)、空引用(NullPointerException)、数组(ArrayIndexOutOfBoundException)等情况。

检查异常和非检查异常

种类

这里写图片描述

非检查异常:

黄色部分都是非检查异常(Error和RuntimException以及他们的子类)
javac编译器在编译时不会检查和提示这样的异常,这里可以加入try_catch_finally也可以不加。非检查异常大部分是代码本身的问题,需要程序员检查代码。

检查异常:

绿色部分都是检查异常
javac强制要求程序员为此类异常做出预处理工作,方式就是直接加入try_catch_finally进行捕获,或者加入throws语句抛出异常,否则无法通过编译。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值