zoukankan      html  css  js  c++  java
  • 廖雪峰Java3异常处理-1错误处理-4自定义异常

    JDK已有的异常:

    • RuntimeException
      * NullPointerException
      * IndexOutOfBoundsException
      * SecurityException
      * IllegalArgumentException
      • NumberOfFormatException
    • IOException
      * UnsupportedCharsetException,FileNotFoundException,SocketException
    • ParseException,GeneralSecurityException,SQLException,TimeoutException
      当需要抛出异常时,尽量使用JDK已定义的异常类型。如传入的参数不正确,一般使用IllegalArugmentException.
      定义新的异常类型:
    • 从合适的Exception派生
    • 从RuntimeException派生
      不需要强制捕获自定义的异常,也不需要在方法中声明需要抛出的异常
    public class BadFileFormatException extends IOException{}
    public class UserNotFoundException extends RuntimeException{}
    

    自定义异常
    可以定义新的异常关系树
    从适合的Exception派生BaseException
    其他Exception从BaseException派生

    public class BaseException extends RuntimeException{}
    public class UserNotFoundException extends BaseException{}
    public class LoginFailedException extends BaseException{}
    

    自定义异常时应该提供多个构造方法
    可以直接使用generate-Constructor导入父类的构造的方法

    public class BaseException extends RuntimeException {
    
        public BaseException() {
        }
    
        public BaseException(String message) {
            super(message);
        }
    
        public BaseException(String message, Throwable cause) {
            super(message, cause);
        }
    
        public BaseException(Throwable cause) {
            super(cause);
        }
    
        public BaseException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
            super(message, cause, enableSuppression, writableStackTrace);
        }
    }
    
    public class UserNotFoundException extends BaseException {
        public UserNotFoundException() {
        }
    
        public UserNotFoundException(String message) {
            super(message);
        }
    
        public UserNotFoundException(String message, Throwable cause) {
            super(message, cause);
        }
    
        public UserNotFoundException(Throwable cause) {
            super(cause);
        }
    
        public UserNotFoundException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) {
            super(message, cause, enableSuppression, writableStackTrace);
        }
    }
    
    

    总结:

    自定义的异常应该从合适的Exception派生
    推荐RuntimeException
    自定义异常应该提供多个构造方法
    可以使用IDE根据父类快速创建构造方法

  • 相关阅读:
    VS2015生成64位dll文件
    gdb简单调试~core文件
    Ubuntu ENet 的下载和编译
    Android LIstView初次创建getview方法执行多次问题
    android ipc通信机制之之三,进程通讯方式。
    Android Stduio统计项目的代码行数
    Android开发遇到的坑(1):Java中List的安全删除问题
    Android Studio修改项目的包名
    类似IOS的滑动返回上一级,SwipeBackLayout-android的滑动返回类库
    [转]理解RESTful架构
  • 原文地址:https://www.cnblogs.com/csj2018/p/10306066.html
Copyright © 2011-2022 走看看