我是靠谱客的博主 俏皮茉莉,最近开发中收集的这篇文章主要介绍Exception和Error有什么区别,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Exception和Error有什么区别

  1. Exception 和 Error 都是继承了 Throwable 类,在 Java 中只有 Throwable 类型的实例才可以被抛出(throw)或者捕获(catch),它是异常处理机制的基本组成类型。
  2. Exception 是程序正常运行中,可以预料的意外情况,可能并且应该被捕获,进行相应处理。
  3. Error 是指 java 运行时系统的内部错误和资源耗尽错误,不便于也不需要捕获,常见的比如 OutOfMemoryError 之类,都是 Error 的子类。
    在这里插入图片描述
    Exception 又分为可检查(checked)异常和不检查(unchecked)异常,可检查异常在源代码里必须显式地进行捕获处理,这是编译期检查的一部分。
    RuntimeException 是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类。 如果出现 RuntimeException,那么一定是程序员的错误.
    检查异常 CheckedException:一般是外部错误,这种异常都发生在编译阶段,Java 编译器会强制程序去捕获此类异常,即会出现要求你把这段可能出现异常的程序进行 try catch

Throw 和 throws 的区别:

位置不同

  • throws 用在函数上,后面跟的是异常类,可以跟多个;而 throw 用在函数内,后面跟的是异常对象。

功能不同:

  1. throws 用来声明异常,让调用者只知道该功能可能出现的问题,可以给出预先的处理方式;throw 抛出具体的问题对象,执行到 throw,功能就已经结束了,跳转到调用者,并将具体的问题对象抛给调用者。也就是说 throw 语句独立存在时,下面不要定义其他语句,因为执行不到。

  2. throws 表示出现异常的一种可能性,并不一定会发生这些异常;throw 则是抛出了异常,执行 throw 则一定抛出了某种异常对象。

  3. 两者都是消极处理异常的方式,只是抛出或者可能抛出异常,但是不会由函数去处理异常,真正的处理异常由函数的上层调用处理。

异常代码格式

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有什么区别所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部