0x40000015装系统出现c报错 程序异常退出是什么原因( 三 )


2.4.1 受检异常

编译器要求必须处理的异常 。
正确的程序在运行过程中,经常容易出现的、符合预期的异常情况 。一旦发生此类异常,就必须采用某种方式进行处理 。除了Exception中的 RuntimeException 及其子类以外,其他的 Exception类及其子类异常就是非运行时期异常都属于受检异常 。这种异常编译器会检查它,也就是说当编译器检查到应用中的某处可能会此类异常时,将会提示你处理本异常——要么使用try-catch捕获,要么使用方法签名中用 throws 关键字抛出,否则编译不通过 。2.4.2 非受检异常
编译器不会进行检查并且不要求必须处理的异常 。
此类异常,就是当程序中出现此类异常时,即使我们没有try-catch捕获它,也没有使用throws 抛出该异常,编译也会正常通过 。该类异常包括运行时异常(RuntimeException 极其子类)和错误( Error) 。RuntimeException 发生的时候,表示程序中出现了编程错误,所以应该找出错误修改程序,而不是去捕获RuntimeException。3. 异常的处理机制(重点)
在 Java 应用程序中,异常处理机制为:抛出异常,捕捉异常 。
3.1 Java异常处理在Java中,一旦方法抛出异常,系统自动根据该异常对象寻找合适异常处理器(Exception Handler)来处理该异常,把各种不同的异常进行分类,并提供了良好的接口 。在 Java 中,每个异常都是一个对象,它是 Throwable类或其子类的实例 。当一个方法出现异常后便抛出一个异常对象,该对象中包含有异常信息,调用这个对象的方法可以捕获到这个异常并可以对其进行处理 。Java 的异常处理涉及了 5 个关键词:try、catch、 finally、throw 和throws 。在Java应用中,异常的处理机制分为声明异常throws,抛出异常throw 和捕获异常try、catch、 finally 。接下来让我为大家详细讲述吧 。3.2 异常处理的关键词throw : 用于抛出异常 。try : 用于监听 。将要被监听的代码(可能抛出异常的代码)放在try语句块之内,当try语句块内发生异常时,异常就被抛出 。catch :用于捕获异常 。catch用来捕获try语句块中发生的异常 。finally : finally语句块总是会被执行 。它主要用于回收在try块里打开的资源(如数据库连接、网络连接和磁盘文件) 。注意:只有finally块,执行完成之后,才会回来执行try或者catch块中的return或者throw 语句,如果finally中使用了return或者throw等终止方法的语句,则就不会跳回执行,直接停止 。throws: 用在方法签名中,用于声明该方法可能抛出的异常 。这里先了解下关键词,具体定义格式和使用方法在下面介绍:
3.3 抛出异常throw那什么时候使用呢?作为一个合格的程序员(这不就是我吗),在编写程序时,我们必须要考虑程序出现问题的情况 。比如,在定义方法时,方法需要接受参数 。那么,当调用方法使用接受到的参数时,首先需要先对参数数据进行合法的判断,数据若不合法,就应该告诉调用者,传递合法的数据进来 。这时需要使用抛出异常的方式来告诉调用者 。或者当你觉得解决不了某些异常问题,且不需要调用者处理,那么你也可以抛出异常 。throw的作用:在方法内部抛出一个Throwable 类型的异常 。任何Java代码都可以通过throw语句抛出异常 。具体如何抛出一个异常呢?创建一个异常对象 。封装一些提示信息(信息可以自己编写) 。需要将这个异常对象告知给调用者 。怎么告知呢?怎么将这个异常对象传递到调用者处呢?通过关键字throw就可以完成 。throw异常对象 。throw用在方法内,用来抛出一个异常对象,将这个异常对象传递到调用者处,并结束当前方法的执行 。定义格式:throw new 异常类名(参数);例子:throw new NullPointerException(“要访问的arr数组不存在”);

推荐阅读