> 文档中心 > Java异常处理

Java异常处理

文章目录

  • 前言
  • 异常
  • 什么是异常处理
    • 异常类型
    • 声明异常throws
    • 捕获异常try…catch finally 代码
    • 自定义异常
    • 抛出异常
  • 总结

前言

提示:这里可以添加本文要记录的大概内容:

异常就是程序在运行过程中出现的一些特殊情况。
如果产生异常,程序将无法继续运行


提示:以下是本篇文章正文内容,下面案例可供参考

异常

java.lang.Throwable编译的时候不能运行

1.Error绝症

2.Exception小病

【例】当b为0的时候,a 除以 b 将无法运行

public static void main(String[] args) {int a = 10;    int b = 0;    int c = a / b; }

什么是异常处理

异常处理就是让程序在发生异常的时候还能够正常执行。
本质上就是对遇到的特殊情况进行处理。

异常类型

异常使用异常类来表示
Throwable是所有异常类型的顶层类,它的父类是Object类

Error:表示错误,程序中无法处理,例如内存不够等

RuntimeException:表示运行时期错误,例如ClassCastException、NullPointerException,这些异常可以不处理,但是要预防

Exception:其它的异常都应该是Exception的子类,或者子类的子孙类,必须进行处理。

声明异常throws

应用场景:
通常使用try…catch对可能产生异常的代码进行异常处理
如果在当前方法中不想对异常进行处理,而是把异常抛给方法的调用者处理,这时候需要使用throws声明方法中可能产生的异常。
throws声明异常是另外一种处理异常的方式

基本格式:

/*方法修饰符 返回值类型 方法名(参数) throws 异常类型{*方法实现*}*可以声明多个异常类型,多个异常类型之间使用逗号隔开。*/
//1.声明在方法上 2.异常必须是Exception及子类  3.必须处理声明的异常,不处理会交给jvm声明public class Test {public static void main(String[] args) throws Exception{read("D:\\a.txt"); }private static void read(String path) throws FileNotFoundException{if(path != "D:\\a.txt") {throw new FileNotFoundException("文件找不到异常");     //throw用在方法内,用来抛出一个编译异常对象}} }

捕获异常try…catch finally 代码块

【try:】
• 把可能产生异常的代码写在try语句中
• 可以为每个可能产生异常的代码编写一个单独的try语句
• 也可以为多个可能产生异常的代码写一个try语句。

【catch:】
• 针对每一种可能出现的异常,编写一个catch语句
• catch后面的小括号中写出异常类型
• 在catch对应的大括号中编写产生异常的时候要执行的代码,当异常产生并与当前异常类型匹配,将执行catch中的代码。

【finally:】
• 不管是否产生异常都需要执行的代码写在finally
• 可以没有finally

public static void main(String[] args) {try { //try里编写了可能发生异常的代码throw new FileNotFoundException("文件找不到异常");} catch (FileNotFoundException e) {//catch捕获异常,对异常处理 System.out.println("对异常处理"+e);e.printStackTrace();}finally { System.out.println("不管怎么执行,finally都会执行");} System.out.println("over"); }

自定义异常

异常是对某种特殊情况的表示,例如值不合法、文件不存在等等
需要继承Exception或者Exception的子类。
提供无参数构造方法
提供一个有参数的构造方法,并且调用父类的构造方法

public class MyException extends Exception {public MyException() {}public MyException(String args) {super(args);}}
public class Test {public static void main(String[] args) throws Exception {throw new A("自定义异常"); }}class A extends Exception{public A() {}public A(String message) {super(message);}}

抛出异常

场景:程序运行过程中,遇到了特殊情况(异常),需要把这种特殊情况告诉方法的调用者;

方法:创建一个异常对象,来表示这种异常,然后通过 throw 抛出异常

例如:throw new MyException(“特殊情况”)

抛出异常类似于return 语句:return返回的是正常的结果,throw 返回的是异常对象

当方法中使用throw抛出异常的时候,需要在方法上使用 throws声明方法可能产生的异常类型

总结

什么是异常处理
• 异常是程序在运行过程中遇到的特殊情况
• 异常处理是为了保证当产生异常的时候,程序能够继续执行

try…catch…finally
• try语句中写可能产生异常的代码,catch匹配可能的异常类型并进行处理,finally中写不管是否产生异常都要执行的代码

使用throws声明异常
• 在方法上使用throws声明方法可能产生的异常,则方法中可以不用catch处理。

自定义异常及异常抛出
• 自定义异常用于表示特殊情况,继承Exception,通过throw抛出异常对象。

丽江小吃城