Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.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
Java 从主类引发异常?_Java_Exception - Fatal编程技术网

Java 从主类引发异常?

Java 从主类引发异常?,java,exception,Java,Exception,在我的代码中,我将对象实例化放在一个try-catch块中,因为它们会抛出一个错误。我实例化了许多对象,所以我的代码看起来非常混乱。我想知道是否可以从我的主类中抛出异常,或者这是一种不好的做法?从您的入口点(在本例中,是您的main方法)抛出异常是可以的,除非您能想到一个不这样做的具体原因(“用户不应该看到”,“如果我尝试恢复,而不是退出会更好”) 如果您可以在异常所在的位置处理它们,那么您应该这样做。例如,您可以记录它们,将它们作为更容易理解的异常(例如验证异常)重新抛出,或者通过返回null

在我的代码中,我将对象实例化放在一个try-catch块中,因为它们会抛出一个错误。我实例化了许多对象,所以我的代码看起来非常混乱。我想知道是否可以从我的主类中抛出异常,或者这是一种不好的做法?

从您的入口点(在本例中,是您的
main
方法)抛出异常是可以的,除非您能想到一个不这样做的具体原因(“用户不应该看到”,“如果我尝试恢复,而不是退出会更好”)

如果您可以在异常所在的位置处理它们,那么您应该这样做。例如,您可以记录它们,将它们作为更容易理解的异常(例如验证异常)重新抛出,或者通过返回null退出方法。如果处理它们没有意义,那就不要


您可能需要的是一组更好的类似异常。您可以将那些try-catch块中的所有代码移动到一个私有方法(可能是
init
)中,该方法会抛出所有相关的异常。然后,从
main
方法调用
init
,并将该
init
调用包装在一个try-catch块中,该块捕获所有这些异常。

可以从入口点抛出异常(在本例中,是您的
main
方法),除非您能想到一个不这样做的特定原因(“用户不应该看到它”,“如果我试着恢复,而不是退出,那会更好”)

如果可以在异常所在的位置处理它们,则应该这样做。例如,您可以记录它们,将它们作为更易于理解的异常(如验证异常)重新抛出,或者通过返回null退出方法。如果处理它们没有意义,则不要这样做


您可能需要的是对类似异常进行更好的分组。您可以将这些try-catch块中的所有代码移动到私有方法中(可能是
init
),它抛出所有相关的异常。然后,从
main
方法调用
init
,并将该
init
调用包装在一个try-catch块中,该块捕获所有这些异常。

您能在这里包含您的代码以供参考吗?您的main方法抛出的异常将如何处理?如果这只是一个很小的异常,则是p很可能没问题。例如,如果这涉及到用户的多个输入,您可能希望以不同的方式处理。长话短说,如果您没有以特殊的方式处理异常(您只关心抛出的stacktrace),请随意使用主方法抛出exception@BilltheLizard由main方法引发的异常由(线程)处理UncaughtExceptionHandler您可以在此处包含代码以供参考吗?什么将处理主方法引发的异常?如果这只是一个小问题,可能没关系。例如,如果这涉及到用户的多个输入,您可能希望以不同的方式处理。请看一看。长话短说,如果您不是't以特殊的方式处理异常(如果抛出,您只关心stacktrace),可以让main方法抛出exception@BilltheLizardmain方法引发的异常由(线程)UncaughtExceptionHandler处理“用户不应该看到“这让我删除了我的答案。我个人认为应该记录异常,而不是向用户显示。如果有的话,应该给用户一条错误消息,而不是完整的堆栈跟踪,通知用户他们应该提交“错误报告”+1“用户不应该看到”这让我删除了我的答案。我个人认为应该记录异常,而不是向用户显示。如果有的话,应该给用户一条错误消息,而不是完整的堆栈跟踪,通知用户他们应该提交“错误报告”+1.