java异常 详细解读(终于搞懂了)

为什么会有异常
异常是编写完程序后 在执行时可能发生的错误,这个错误会阻碍程序的执行,
因此 ,我们需要对可能发生的异常 做相应处理,来保证程序正常运行。

在java中,所有的异常都是以类的方式存在,都是软件自带的内置异常类,有很多种。(当然 我们可以自定义异常类)

java是通过面向对象的方法来处理对象, 例如一个方法在执行的过程中 如果产生了异常,那么需要在方法 后面使用throws 来抛出(生成)一个代表该异常的对象!!! 并自动把它交给系统处理。 此过程成为 throws一个异常

java本身就有很好的机制来处理异常

java异常 详细解读(终于搞懂了)_第1张图片
throw 语句 的作用其实就是检测到执行方法时出现的异常,停止执行程序 ,然后将异常显示在控制台
但是如果编写了try catch 捕获异常的代码 ,那么就可以处理异常,这样就会避免程序停止执行!!!

异常处理

上述的只是抛出了异常,并没有对异常进行处理。
异常处理由try ,catch,finally 代码块 构成

所有的异常类是从 java.lang.Exception 类继承的子类。

Exception 类是 Throwable 类的子类。除了Exception类外,**Throwable还有一个子类Error **

Java 程序通常不捕获错误。错误一般发生在严重故障时,它们在Java程序处理的范畴之外。

Error 用来指示运行时环境发生的错误
java异常 详细解读(终于搞懂了)_第2张图片
java异常 详细解读(终于搞懂了)_第3张图片
异常类都在lang包中,而这个包是默认自动加载到java程序的,所以大部分异常类都可以直接使用。

关于异常这一个块重点要学的就是 异常类名的记忆 有十多个

那么出现了异常 接下来该怎么做呢?

捕获异常
使用 try 和 catch 关键字可以捕获异常。try/catch 代码块放在异常可能发生的地方

try/catch代码块中的代码称为保护代码,使用 try/catch 的语法如下:

try
{
   // 程序代码
}catch(ExceptionName eee)
{
   //Catch 块
}

Catch 语句包含要捕获异常类型的声明。当try代码块中发生一个异常时,try 后面的 catch 块就会被检查。

如果发生的异常包含在 catch 块中(符合异常类型的声明),异常会被传递到该 catch 块,这和传递一个参数到方法是一样。

为了更加高效,try后面可以写多个catch 代码块 来捕获不同的异常
java异常 详细解读(终于搞懂了)_第4张图片

抛出异常

抛出异常有两种方式
1.程序中抛出异常 ,用throw关键字,此时抛出的时候一个实例化的异常对象;
java异常 详细解读(终于搞懂了)_第5张图片
2.方法后面抛出异常 用 throws 关键字
如果方法可能会出现异常,但在方法内又没有写try catch 来进行异常处理 ,
那么此时需要在方法 后面声明抛出什么异常!! 然后在调用此方法的那个代码处 再写try catch 处理语句 来处理这个异常!
在这里插入图片描述

你可能感兴趣的:(java)