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根据父类快速创建构造方法

  • 相关阅读:
    MUI(5)
    MUI(4)
    MUI(3)
    如何查找僵尸进程并Kill之,杀不掉的要查看父进程并杀之
    Linux下查看文件和文件夹大小
    CentOS,Ubuntu,Gentoo,Freebsd,RedHat,Debian的区别及选择
    eclipse4.3 安装tomcat8
    maven 代理
    ldap基本命令
    ssh-keygen
  • 原文地址:https://www.cnblogs.com/csj2018/p/10306066.html
Copyright © 2011-2022 走看看