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

  • 相关阅读:
    adb
    Android 入门第一课 一个简单的提示框
    JAVA基础入门
    Android环境配置
    Redis_基本类型介绍和指令___3
    Redis_基本类型介绍和指令___2
    Redis_基本类型介绍和指令___1
    Rediss_基本介绍
    int 指令
    关于学习汇编的一些规则的理解(div mul cf of)
  • 原文地址:https://www.cnblogs.com/csj2018/p/10306066.html
Copyright © 2011-2022 走看看