在Java中捕获e(错误)时要做什么

在Java中捕获e(错误)时要做什么,java,Java,在Java中,我看到了很多如下代码。 我想知道的是,仅仅显示错误消息就足够了吗 我是Java新手。我想学习的是如何有效地处理错误,并了解错误处理的最佳实践。一般来说,我应该在catch block中做什么 示例1:printStackTrace() 示例2:getMessage 示例3:显示自定义错误消息 e、 printStackTrace将消息打印到控制台,当用户看到控制台时,您可以使用它 e、 getMessage()返回一个字符串,以便您可以根据需要进行处理,如: try { } ca

在Java中,我看到了很多如下代码。 我想知道的是,仅仅显示错误消息就足够了吗

我是Java新手。我想学习的是如何有效地处理错误,并了解错误处理的最佳实践。一般来说,我应该在catch block中做什么

示例1:printStackTrace() 示例2:getMessage 示例3:显示自定义错误消息
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();