咱们一起聊聊Java异常

  • 时间:
  • 浏览:0
  • 来源:大发5分6合_大发5分6合官方

因此try得话块中存在return得话,那么首先会执行finally得话块中的代码,因此才返回。

检查异常(checked exception):除了Error 和 RuntimeException的其它异常。javac强制要求守护tcp连接员为啥都 的异常做预备党员避免工作(使用try…catch…finally因此throws)。在依据中要么用try-catch得话捕获它并避免,要么用throws子句声明抛出它,因此编译不用通过。不用 的异常一般是由守护tcp连接的运行环境由于 的。因此守护tcp连接因此被运行在各种未知的环境下,而守护tcp连接员无法干预用户何如使用他编写的守护tcp连接,于是守护tcp连接员就应该为啥都 的异常时刻准备着。如SQLException , IOException,ClassNotFoundException 等。

因此try得话块中存在System.exit(0)得话,那么久不用执行finally得话块的代码了,因此System.exit(0)会终止当前运行的JVM。守护tcp连接在JVM终止前现在始于执行。

当使用多个catch得话块来捕获异常时,须要将父类的catch得话块贴到 子类型的catch块完后 ,不用 能不能保证后续的catch因此被执行,因此子类型的catch将永远无法到达,Java编译器会报编译错误。

3.自定义异常能不能 在亲们项目中某些特殊的业务逻辑时抛出异常,比如”中性”.equals(sex),性别等于中性时亲们要抛出异常,而Java是不用有这人异常的。系统中某些错误是符合Java语法的,但不符合亲们项目的业务逻辑。

4.使用自定义异常继承相关的异常来抛出避免后的异常信息能不能 隐藏底层的异常,不用 更安全,异常信息也更加的直观。自定义异常能不能 抛出亲们人及你会抛出的信息,能不能 通过抛出的信息区分异常存在的位置,根据异常名亲们就能不能 知道哪里有异常,根据异常提示信息进行守护tcp连接修改。比如空指针异常NullPointException,亲们能不能 抛出信息为“xxx为空”定位异常位置,而不用输出堆栈信息。

1.亲们在工作的完后 ,项目是分模块因此分功能开发的 ,基本不用你三个 人开发一整个项目,使用自定义异常类就统一了对外异常展示的依据。

何如自定义异常

按照国际惯例,自定义的异常应该突然涵盖如下的构造函数:

错误:Error类以及他的子类的实例,代表了JVM一种生活的错误。错误能不能被守护tcp连接员通过代码避免,Error很少突然突然出现。因此,守护tcp连接员应该关注Exception为父类的分支下的各种异常类。

总体上亲们根据Javac对异常的避免要求,将异常类分为2类。

非检查异常(unckecked exception):Error 和 RuntimeException 以及亲们的子类。javac在编译时,不用提示和发现不用 的异常,不用说求在守护tcp连接避免那此异常。不用 因此你会,亲们能不能 编写代码避免(使用try…catch…finally)不用 的异常,也能不能 不避免。对于那此异常,亲们应该修正代码,而全是去通过异常避免器避免 。不用 的异常存在的由于 多半是代码写的有间题。如除0错误ArithmeticException,错误的强制类型转换错误ClassCastException,数组索引越界ArrayIndexOutOfBoundsException,使用了空对象NullPointerException等等。

Java标准库内建了某些通用的异常,那此类以Throwable为顶层父类。

原文发布时间为:2018-07-06

本文作者:HARRIES

本文来自云栖社区媒体合作伙伴“ Java杂记”,了解相关信息能不能 关注“ Java杂记”

为那此要自定义异常

三个 无参构造函数

三个 涵盖String参数的构造函数,并传递给父类的构造函数。

三个 涵盖String参数和Throwable参数,并都传递给父类构造函数

三个 涵盖Throwable 参数的构造函数,并传递给父类的构造函数。

下面是IOException类的删改源代码,能不能 借鉴。

异常:Exception以及他的子类,代表守护tcp连接运行时发送的各种不期望存在的事件。能不能 被Java异常避免机制使用,是异常避免的核心。

因此要自定义异常类,则扩展Exception类即可,因此不用 的自定义异常都属于检查异常(checked exception)。因此要自定义非检查异常,则扩展自RuntimeException。

Java提供了更加优秀的避免依据:异常避免机制。

Throwable又派生出Error类和Exception类。

Java异常的分类和类底部形态图

异常避免机制能让守护tcp连接在异常存在时,按照代码的预先设定的异常避免逻辑,针对性存在理异常,让守护tcp连接尽最大因此恢复正常并继续执行,且保持代码的清晰。

Java中的异常能不能 是函数中的得话执行时引发的,也能不能 是守护tcp连接员通过throw 得话手动抛出的,假使 在Java守护tcp连接中产生了异常,就会用三个 对应类型的异常对象来封装异常,JRE就会试图寻找异常避免守护tcp连接来避免异常。

Throwable类是Java异常类型的顶层父类,三个 对象能不能是 Throwable 类的(直接因此间接)实例,他才是三个 异常对象,能不能被异常避免机制识别。JDK中内建了某些常用的异常类,亲们也能不能 自定义异常。

守护tcp连接运行时,存在的不被期望的事件,它阻止了守护tcp连接按照守护tcp连接员的预期正常执行,这不用 异常。异常存在时,是任守护tcp连接自生自灭,立刻退出终止,还是输出错误给用户?因此用C语言风格:用函数返回值作为执行情况?。

那此是异常

2.有完后 亲们遇到某些校验因此间题时,须要直接现在始于掉当前的请求,这时便能不能 通过抛出自定义异常来现在始于,因此你项目中使用了SpringMVC比较新的版本得话有控制器增强,能不能 通过@ControllerAdvice注解写三个 控制器增强类来拦截自定义的异常并响应给前端相应的信息(关于springMVC控制器增强的知识有空再和亲们分享)。

异常使用注意事项

须要明确的是:检查和非检查是对于javac来说的,不用 就很好理解和区分了。