首页 > 解决方案 > 将异常传递给自定义异常处理程序方法。爪哇

问题描述

我有一个包含大约 20 个方法的类,它们都捕获 1 个或多个异常,然后根据该异常响应用户。我不想一遍又一遍地编写它们,而是想创建一个传递异常、处理它并给出适当响应的方法。

这是一个例子

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."); 
    }
}

标签: javaexceptionmethodsparameter-passing

解决方案


您将要使用 instanceof 而不是 ==,因为您正在尝试比较两种不同的类型。

if(e instanceof UnsupportedOperationException)

ETC


推荐阅读