Exception一自定义异常

欢迎光临我的博客[http://poetize.cn],前端使用Vue2,聊天室使用Vue3,后台使用Spring Boot

异常体系的根类是:Throwable

  • Throwable:
    • Error:   重大的问题,我们处理不了。也不需要编写代码处理。比如说内存溢出。
    • Exception:   一般性的错误,是需要我们对编写的代码进行处理。
      • 运行期异常:   在运行时出问题,需要修正代码
      • 编译期异常:就是一般的异常(编译期异常)
  • Throwable类的三个重要方法
    • getMessage(): 获取异常信息,返回字符串。
    • toString(): 获取异常类名和异常信息,返回字符串。
    • printStackTrace(): 获取异常类名和异常信息,以及异常出现在程序中的位置。返回值void。
  • 异常捕捉与处理
    • try...catch
    • try...catch...catch...
    • try...catch...catch...finally

多个异常同时被捕获的时候,记住一个原则:先逮小的,再逮大的。

Throw与throws抛出异常

  • throw : 将产生的异常抛出(强调的是动作),抛出的既可以是异常的引用,也可以是异常对象。(位置: 方法体内
    • 后面是RuntimeException及其子类,调用时可以不处理
    • 后面是编译异常,调用时需要处理(Throws or try...catch
  • throws : 如果一个方法可能会出现异常,但没有能力处理这种异常,可以在方法声明处用throws子句来声明抛出异常。用它修饰的方法向调用者表明该方法可能会抛出异常(可以是一种类型,也可以是多种类型,用逗号隔开)(位置: 写在方法名,或方法名列表之后 ,在方法体之前。

注意 : 调用可能会抛出异常的方法,必须添加try-catch代码块尝试去捕获异常 或者 添加throws声明 来将异常 抛出给更上一层的调用者进行处理
子类重写父类方法,父类未抛出异常,子类也不能抛出异常(可以try...catch)

自定义异常

public class CustomException extends Exception {

    protected String code;

    protected String message;

    //无参构造方法
    public CustomException(){
        super();
    }

    //有参的构造方法
    public CustomException(String message,String code){
        super(message);
        this.message = message;
        this.code= code;
    }

    // 用指定的详细信息和原因构造一个新的异常
    public CustomException(String message, Throwable cause){
        super(message,cause);
    }

    //用指定原因构造一个新的异常
     public CustomException(Throwable cause) {
         super(cause);
     }
}
posted @ 2019-08-07 11:07  LittleDonkey  阅读(408)  评论(0编辑  收藏  举报