gpt4 book ai didi

java - 如何处理异常并完成方法的功能而不提示用户已发生的异常

转载 作者:行者123 更新时间:2023-11-29 10:05:08 25 4
gpt4 key购买 nike

假设有这样一种情况:

statement 1;
statement 2;
statement 3;
statement 4;
statement 5;
statement 6;
statement 7;
statement 8;
statement 9;
statement 10;

这些语句中的任何一个都可能引发Exception。所以我将它们放在 try-catch block 中。

try{
statement 1;
statement 2;
statement 3;
statement 4;
statement 5;
statement 6;
statement 7;
statement 8;
statement 9;
statement 10;
}catch(Exception e){
e.printStackTrace();
}

现在,假设要完成我的计算,无论如何我都需要处理所有这 10 个语句。我该如何处理这种情况?

例如,假设我有 10 个 String。当用户决定将该字段留空时,它们中的任何一个都可能抛出 NullPointerException(例如 Not Applicable on forms 等情况)。如果我要开发整个项目,我可以先检查 null 并相应地返回值以进行处理。但假设我只需要开发这个模块来处理数据。

我可以进行单独的 if 检查以检查哪个 String 为空,在处理过程中忽略它的值,然后继续。但是,如果我有 nString,引入 n if 语句就不够整洁了。会吗?

即使发生Exception,我也可以有单独的try catch 并继续处理。但话又说回来,不会整洁。

我可以分析堆栈跟踪并获取行号并跳转到下一行并继续处理。(我可以吗?我不确定。从捕获返回到尝试?我相信不可能, 但仍然把它写下来作为一种可能性)。

但这些方法似乎都不合适和不正确。

有没有更好更简单的方法来处理这种情况?我刚刚举了一个String的例子,要处理的数据可以是任何东西,并且可以产生任何Exception

再次重复我的问题:有没有一种方法可以完成方法或流程的评估,无论其中产生多少异常?

问题可能重复(虽然我没有找到),或者措辞不当。随意编辑它(或建议编辑),但仍要保持主要思想。

最佳答案

I could put individual if checks to check which String is null, ignore it's value in the processing, and move on. But if I have n number of Strings, introducing n if statements wouldn't be tidy. Would it?

你是否对每个字符串都做同样的事情,你应该将“检查并可选地做某事”行为提取到一个方法中。

您绝对不应该在您知道可以合法为空的空引用上调用方法。 NullPointerException 应始终指示某处存在错误(您不应该获得 null 引用,或者如果这是合法的,您应该在对其进行任何操作之前检查它)。

如果您的方法做 10 件独立的事情,每件都可能失败,那么它可能太大而无法开始。听起来它们是独立的操作(否则您无法在操作 1 失败后执行操作 2),因此将每个操作放入一个带有 try/catch block 的单独方法中,并从您的顶级方法中调用它们。

从根本上说,这感觉像是一种代码味道 - 很少在遇到异常时愉快地继续执行一系列步骤是个好主意,而且几乎肯定不仅仅是通过捕获 异常。您应该仔细考虑这是否真的是您想要的设计。

绝对没有任何语言可以让您更轻松地完成这项工作 - 恰恰是因为这样做几乎总是错误的。

关于java - 如何处理异常并完成方法的功能而不提示用户已发生的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11167935/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com