在Java中捕获e(错误)时要做什么
在Java中,我看到了很多如下代码。 我想知道的是,仅仅显示错误消息就足够了吗 我是Java新手。我想学习的是如何有效地处理错误,并了解错误处理的最佳实践。一般来说,我应该在catch block中做什么 示例1:printStackTrace() 示例2:getMessage 示例3:显示自定义错误消息在Java中捕获e(错误)时要做什么,java,Java,在Java中,我看到了很多如下代码。 我想知道的是,仅仅显示错误消息就足够了吗 我是Java新手。我想学习的是如何有效地处理错误,并了解错误处理的最佳实践。一般来说,我应该在catch block中做什么 示例1:printStackTrace() 示例2:getMessage 示例3:显示自定义错误消息 e、 printStackTrace将消息打印到控制台,当用户看到控制台时,您可以使用它 e、 getMessage()返回一个字符串,以便您可以根据需要进行处理,如: try { } ca
e、 printStackTrace将消息打印到控制台,当用户看到控制台时,您可以使用它 e、 getMessage()返回一个字符串,以便您可以根据需要进行处理,如:
try {
} catch (IOException E) {
System.out.println("Error occured. Please try again."+ e.getMessage());
}
或者在没有控制台但有GUI的情况下使用getMessage(),您可以设置:
textField.setText(e.getMessage());
我建议您从中的异常部分开始 在catch块中应该做什么取决于您的应用程序 通常,如果您只是记录错误,那么应该包括stacktrace以使调试更容易
logger.error("Error occurred.", e);
简言之,答案取决于具体情况。按照您的业务逻辑要求去做
- 如果要记录它,请记录它
- 如果您想在console中看到错误,请将其打印到那里
- 如果您想返回到方法调用方,请执行该操作
e.printStackTrace();
上述方法可能是一种很好的做法,因为它将跟踪堆栈并显示问题所在的位置。您应该使用记录器记录错误,这样您就可以决定在何处写入异常(es.a文件)并执行其他操作,这取决于您的代码正在执行的操作。 例如,如果要写入数据库,则应将数据回滚到以前的状态
我还建议您不要抑制异常,而是让“用户”知道出现了问题。您可以捕获该异常并将其包装到另一个异常中,其中包含一条更为用户友好的消息。您还可以重定向到另一个页面,如错误页面,同时在try-catch块中获取任何异常。 您还可以在html页面上描述错误。
因此,如果catch块中存在异常,用户将重定向到错误页面。首选使用记录器。就像阿米拉回答的那样……如果没有控制台怎么办?是的,你可以根据情况使用其中任何一个。
textField.setText(e.getMessage());
logger.error("Error occurred.", e);
e.printStackTrace();