有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java可抛出到异常

我目前正在使用play2框架

我有几个类正在抛出exceptions,但是play2s全局onError处理程序使用throwable而不是异常

例如,我的一个类抛出一个NoSessionException。如果一个可丢弃的对象是NoSessionException,我可以检查它吗


共 (5) 个答案

  1. # 1 楼答案

    ^{}是一个Exception及其所有子类的子类。没有什么能阻止你在Throwable上使用instanceof

  2. # 2 楼答案

    您可以使用instanceof检查它是否为NoSessionException

    例如:

    if (exp instanceof NoSessionException) {
    ...
    }
    

    假设expThrowable引用

  3. # 3 楼答案

    除了检查它是否为instanceof之外,还可以使用try-catch和catch-NoSessionException

    try {
        // Something that throws a throwable
    } catch (NoSessionException e) {
        // Its a NoSessionException 
    } catch (Throwable t) {
        // catch all other Throwables
    }
    
  4. # 4 楼答案

    Can I check a throwable object if it is a NoSessionException ?

    当然可以:

    Throwable t = ...;
    if (t instanceof NoSessionException) {
        ...
        // If you need to use information in the exception
        // you can cast it in here
    }
    
  5. # 5 楼答案

    简短一点。我们可以将Throwable传递给Exception构造函数

     @Override
     public void onError(Throwable e) {
        Exception ex = new Exception(e);
     }               
    

    看到这个来自Android的Exception