异常
将程序执行中发生的不正常情况称为“异常”(语法错误和逻辑错误不是异常)。
异常时间分为两大类:
1.Error(错误):Java虚拟机无法解决的严重问题。Error 是严重错误,程序会崩溃。
2.Exception(异常):其他因编程错误或偶然的外在因素导致的一般性问题可以使用针对性的代码处理。Exception 分为两大类:编译时异常和运行时异常。
public class Demo {
public static void main(String[] args) {
int n1 = 10;
int n2 = 0;
int res = n1 / n2;
System.out.println("程序继续运行");
}
}
ArithmeticException:算数异常
使用下面方法解决:
public class Demo {
public static void main(String[] args) {
int n1 = 10;
int n2 = 0;
try {
int res = n1 / n2;
} catch (Exception e) {
System.out.println("报错信息为: " + e.getMessage());
}
System.out.println("程序继续运行");
}
}
异常体系图:
异常处理方式
1.try-catch-finally
try{
代码/可能有异常
}catch { Exception e}
//捕获到异常时,当异常发生时
//系统将异常封装成 Exception 对象 e,传递给catch,得到异常对象后,程序员自己处理。
//如果没有发生异常时,catch 代码块不执行。
finally {
//不管代码块是否有异常发生时,finally代码块都会执行
}
2.throws(1.try-catch-finally 或 throws 二选一 2.如果程序员没有显示是处理异常,默认throws)
将发生的异常抛出,交给调用者(方法)来处理,最顶级的处理者就是JVM
Java提供 try-catch 来处理异常,try 里面是可能出现错误的代码,catch 用于处理 try 中发生的异常,可以根据需要再程序中有多个 try-catch。
自定义异常
当程序中出现了某些“错误”,但该错误并没有在 Throwable 子类中描述处理,这个时候可以自己设计异常类,用于描述该异常信息。
自定义异常的步骤:
1.定义类:自定义异常类名(程序员自己写)继承 Exception 或 RuntimeExecption
2.如果继承 Exception,属于编译异常
3.如果继承 RuntimeException,属于运行异常(一般来说,继承RuntimeException)即把自己定义异常做成 运行时异常,好处是,我们可以使用默认的处理机制,比较方便。
Ending:
OK,本篇文章就到此结束了,非常感谢你能看到这里,所以如果你觉得这篇文章对你有帮助的话,请点一个大大的赞,支持一下博主,若你觉得有什么问题或疑问,欢迎私信博主或在评论区指出~