java异常捕获以及处理

1  异常的基本概念

 异常是导致程序中断的一种指令,如果出现异常不处理,会导致程序中断,所以,在程序中很有必要考虑各种可能会出现的异常,并做好相应的处理,这样才能保证程序的正常运行。如果产生异常,则异常之语句并不会执行,而是直接结束程序,而将错误直接报告给客户,给客户造成不好的体验。

2 异常处理的基本格式try-catch,try中捕获异常,catch中处理异常。

try中捕获异常,出现异常之后的代码将不会执行,而是直接到catch中执行。

3 异常的继承关系

在java异常结构中,有两种常见的异常类,Exception和Error,其都在Throwable的子类。

Exception一般表示程序中出现的问题,可以用try-catch捕获异常进行处理。

Error一般指JVM错误,程序中无法处理。

4 java异常处理机制

在整个异常处理中,实际上是按照面向对象的思想来处理的,处理步骤如下:

1 一旦产生异常,首先会产生一个异常类的实例化对象。

2 在try语句中异常对象进行捕捉。

3 产生的异常对象和catch中的各个异常类型进行匹配,如果匹配成功,执行catch中的代码,否则就是JVM默认的处理方式。

根据对象的多态性,子类的实例化对象可以直接使用父类的对象进行接收。

在异常的处理中,try中产生一个异常实例化对象,如果现在有一些不知道的其他异常,则可以用Exception进行捕获。

在这里有一个问题,既然所有的异常都可以用Exception进行接收,那么直接用Exception直接捕获异常不是更方便吗?

虽然这样可以处理所有的异常,但是在开发者最好不要这样,因为这样只知道发生了异常,并不知道发生了什么具体的异常,这个具体可能会产生什么异常,在今后的开发文档中会标注的。

这里有出现一个问题,既然可以向上转型,为什么不直接用其父类Throwable?

首先这样的想法是可以的,因为Exception是Throwable的子类,满足向上转型的要求,但是Throwable还有另一个子类Error,而程序的try语句只会抛出Exception的子类对象,所以用Exceptiob处理统一的捕获。

1  程序出现异常后,入伙没有合理的处理方式,会导致程序的中断执行。

2 使用try-catch和try-catch-finally

原文地址:https://www.cnblogs.com/wrkjwl/p/9599611.html