概述
Exception和Error有什么区别
- Exception 和 Error 都是继承了 Throwable 类,在 Java 中只有 Throwable 类型的实例才可以被抛出(throw)或者捕获(catch),它是异常处理机制的基本组成类型。
- Exception 是程序正常运行中,可以预料的意外情况,可能并且应该被捕获,进行相应处理。
- Error 是指 java 运行时系统的内部错误和资源耗尽错误,不便于也不需要捕获,常见的比如 OutOfMemoryError 之类,都是 Error 的子类。
Exception 又分为可检查(checked)异常和不检查(unchecked)异常,可检查异常在源代码里必须显式地进行捕获处理,这是编译期检查的一部分。
RuntimeException 是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类。 如果出现 RuntimeException,那么一定是程序员的错误.
检查异常 CheckedException:一般是外部错误,这种异常都发生在编译阶段,Java 编译器会强制程序去捕获此类异常,即会出现要求你把这段可能出现异常的程序进行 try catch
Throw 和 throws 的区别:
位置不同
- throws 用在函数上,后面跟的是异常类,可以跟多个;而 throw 用在函数内,后面跟的是异常对象。
功能不同:
-
throws 用来声明异常,让调用者只知道该功能可能出现的问题,可以给出预先的处理方式;throw 抛出具体的问题对象,执行到 throw,功能就已经结束了,跳转到调用者,并将具体的问题对象抛给调用者。也就是说 throw 语句独立存在时,下面不要定义其他语句,因为执行不到。
-
throws 表示出现异常的一种可能性,并不一定会发生这些异常;throw 则是抛出了异常,执行 throw 则一定抛出了某种异常对象。
-
两者都是消极处理异常的方式,只是抛出或者可能抛出异常,但是不会由函数去处理异常,真正的处理异常由函数的上层调用处理。
异常代码格式
try{
}catch(异常类){
}finally{
}
自定义异常类
public class MyException extends Exception {
public MyException(String s) {
super(s);
}
}
写方法时,在可能会发生异常的地方抛出异常
public class A {
public void aaa() throws MyException {
int i = 0;
while (true) {
if (i == 10) {
System.out.println(i);
throw new MyException("aaaaa");
}
i++;
}
}
}
调用该方法,捕获它抛出的异常
public class TestClass {
public static void main(String[] args) {
A a = new A();
try {
a.aaa();
} catch (MyException e) {
e.printStackTrace();
}
}
}
最后
以上就是俏皮茉莉为你收集整理的Exception和Error有什么区别的全部内容,希望文章能够帮你解决Exception和Error有什么区别所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复