开发者社区> 问答> 正文

将Exception传递给自定义的Exception Handler方法

我有一个带有大约20个方法的类,这些方法都捕获1个或多个异常,然后根据该异常响应用户。我不想创建一遍又一遍的方法,而是要创建一个方法,该方法将传递给Exception,对其进行处理并给出适当的响应。

这是一个例子

public boolean addFirst(Object data){

    try {
        //add something 
        return true;
    } catch(Exception e) {
        exceptionHandler(e);
        return false;
    } 
}

但是,当我尝试将其与“ e”进行比较时,它给了我“ 无法将异常解析为变量”。

private void exceptionHandler(Exception e) {
    if(e == UnsupportedOperationException) {
        System.out.println("Operation is not supported.");
    } else if (e == ClassCastException) {
        System.out.println("Class of the specified element prevents it from being added to this list.");
    } else if (e == NullPointerException) {
        System.out.println("You cannot enter nothing.");
    } else if (e == IndexOutOfBoundsException) {
        System.out.println("Your specified index is larger than the size of the LinkedList. Please choose a lower value.");
    } else if(e == Exception) {
        System.out.println("You messed up so hard that I don't even know what you did wrong."); 
    }
}

问题来源:Stack Overflow

展开
收起
montos 2020-03-21 21:11:24 1288 0
1 条回答
写回答
取消 提交回答
  • 例如UnsupportedOperationException,不是声明的变量,这就是编译器抱怨的内容。

    执行此操作时,e == UnsupportedOperationException您正在检查的引用是否e等于的引用,UnsupportedOperationExceptionUnsupportedOperationException从未声明过。

    要检查对象的类型,必须使用instanceof关键字和class要检查的对象。

    e instanceof UnsupportedOperationException
    

    回答来源:Stack Overflow

    2020-03-21 21:12:30
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载