账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    自定义的异常类,用instanceof判断类型错误
    25
    0

    自定义了一个继承RuntimeException的类BusinessRunTimeException,在controller捕获的时候,用e instanceof BusinessRunTimeException判断结果返回false

    相关代码

    业务层直接抛异常:

      throw new BusinessRunTimeException();

    控制层捕获:

        try {
                 //省略内容
            } catch (Exception e) {
                if (e instanceof BusinessRunTimeException) {
                    BusinessRunTimeException b = (BusinessRunTimeException) e;
                    //省略内容
                } else {
                   //省略内容
                }
              }
    
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 如曲终破尘 普通会员 1楼

      在Java中,你可以创建自定义的异常类,然后使用instanceof关键字来判断异常的类型是否正确。以下是一个简单的例子:

      ```java public class CustomException extends Exception { public CustomException(String message) { super(message); }

      public CustomException(String message, Throwable cause) {
          super(message, cause);
      }
      

      }

      public class Main { public static void main(String[] args) { try { CustomException e = new CustomException("This is a custom exception"); System.out.println(e instanceof CustomException); // 输出: true } catch (CustomException e) { e.printStackTrace(); } } } ```

      在这个例子中,我们首先创建了一个名为CustomException的自定义异常类。然后在main方法中,我们尝试创建一个CustomException对象,并使用instanceof关键字来判断它是否是CustomException类的实例。如果它是,那么打印出true;如果不是,那么打印出false

      注意,instanceof关键字只能用来判断对象的类型,不能用来判断属性的类型。如果你想判断属性的类型,你需要使用getDeclaredType()方法。例如:

      ```java public class CustomException extends Exception { private Class<?> declaredType;

      public CustomException(String message, Class<?> declaredType) {
          super(message);
          thisDeclaredType = declaredType;
      }
      
      public Class<?> getDeclaredType() {
          return declaredType;
      }
      
      // 其他方法...
      

      } ```

      在这个例子中,我们添加了一个新的方法getDeclaredType(),它返回declaredType对象的Class类型。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部