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

  • 相关阅读:
    话说打工
    Linux系统信息查看命令大全
    基于LNMP的Zabbbix之Zabbix Server源码详细安装,但不给图
    基于LNMP的Zabbbix之PHP源码安装
    php --with-mysql=mysqlnd
    LeetCode:Binary Tree Level Order Traversal
    tslib-触摸屏校准
    A
    【雷电】源代码分析(二)-- 进入游戏攻击
    能够替代浮动的inline-block
  • 原文地址:https://www.cnblogs.com/csj2018/p/10306066.html
Copyright © 2011-2022 走看看