Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javame中的自身异常_Java_Java Me_Exception Handling - Fatal编程技术网

javame中的自身异常

javame中的自身异常,java,java-me,exception-handling,Java,Java Me,Exception Handling,我可以用一个(自写)捕获替换所有捕获,并在自写捕获的异常类型之间切换吗?这样我就可以很容易地在异常情况下进行调试 try { int recordId = recordstore.addRecord(data, 0, data.length); } catch (RecordStoreFullException e) { e.printStackTrace(); System.out.pri

我可以用一个(自写)捕获替换所有捕获,并在自写捕获的异常类型之间切换吗?这样我就可以很容易地在异常情况下进行调试

try {
            int recordId = recordstore.addRecord(data, 0, data.length);

        } catch (RecordStoreFullException e) {
            e.printStackTrace();
                    System.out.println("debuginfo");
        } catch (RecordStoreNotOpenException e) {
            e.printStackTrace();
                    System.out.println("debuginfo");
        } catch (RecordStoreException e) {
            e.printStackTrace();
                    System.out.println("debuginfo");
        } catch (NullPointerException e) {
            e.printStackTrace();
                    System.out.println("debuginfo");
        } catch (Exception e) {
            e.printStackTrace();
                    System.out.println("debuginfo");
        }

你为什么不这么做

try {
    int recordId = recordstore.addRecord(data, 0, data.length);

} catch (Exception e) {
    // or use a logging framework.
    System.err.println("debuginfo");
    e.printStackTrace();
}

因为我不想知道特定的异常信息。我可以在一般异常中在e.getMessage()之间切换,但这太普遍了。您能更新您的示例吗?你说你想替换所有的捕获,但你没有说明是什么阻止你这样做。是的,但是你能用你自己编写的自定义异常替换所有捕获吗?这有什么帮助?您可以将addRecord更改为具有自定义异常(未显示在代码中),也可以抛出自定义异常,从每个异常中提取所需的信息(或者您可以将其包装)。这样做的好处是我不必删除所有System.out.println命令(在我的程序中,它被一个占用大量资源的日志框架所取代,因此我不能让它处于打开状态)。但是,如果我使用自己的异常,我可以使用布尔值来调试异常,也可以不调试异常。只需将调试布尔值设置为false,就不会有更多的调试信息。