我需要一些帮助来理解IOException.我在互联网上查看了很多信息,并查看了Oracle Java网站上的技术规范.
我对IOException类及其所有子类的理解是否正确,没有关联的"错误消息"或"返回代码"值?
因此,如果想要发出一些消息和/或返回代码值,那么必须使用IOException catch逻辑插入它们吗?
如果以上是真的,那么如何将各种IOException子类分开?
例如,如果应用程序检测到IOException,它是什么类型的IOException?文件结束,文件已关闭,文件未发现,文件使用等.
Pét*_*rök 20
异常(通常)中没有"返回代码"值,但它们确实包含错误消息.您应该在catch块中处理它们,您可以在其中指定要处理的异常类型.catch块之后可以有几个块try,以不同方式处理不同类型的异常.catch块将按指定的顺序调用,第一个具有合适参数类型的块将处理异常.所以你应该首先捕获更具体的异常类型,然后是更一般的异常类型.
简单的例子:
try {
...
throw new FileNotFoundException("This is an error message");
...
} catch (FileNotFoundException e) {
System.out.println("File not found: " + e.getMessage());
...
} catch (EOFException e) {
System.out.println("End of file reached: " + e.getMessage());
...
} catch (IOException e) { // catch all IOExceptions not handled by previous catch blocks
System.out.println("General I/O exception: " + e.getMessage());
e.printStackTrace();
...
}
Run Code Online (Sandbox Code Playgroud)
正如您在上一个catch块中看到的那样,异常存储其原点的堆栈跟踪,可以打印.但是,像这里直接打印这样的消息通常不是一个好主意; 在实际生产代码中,您通常希望使用日志记录框架记录这些消息,或在UI上显示它们(适当的部分).
| 归档时间: |
|
| 查看次数: |
62626 次 |
| 最近记录: |