【发布时间】:2010-01-26 04:32:25
【问题描述】:
在我的计算应用程序中,它接受一些输入并在固定公式中使用它们来产生多个输出,如果我尝试在没有为每个输入输入值的情况下运行它,应用程序就会崩溃。
我知道如何捕获异常,但我不知道这种错误会引发的异常的名称。谁能帮我解决这个问题?
【问题讨论】:
在我的计算应用程序中,它接受一些输入并在固定公式中使用它们来产生多个输出,如果我尝试在没有为每个输入输入值的情况下运行它,应用程序就会崩溃。
我知道如何捕获异常,但我不知道这种错误会引发的异常的名称。谁能帮我解决这个问题?
【问题讨论】:
查看堆栈跟踪以获取异常的类名。
如果我不得不猜测,我会说它可能是 NumberFormatException
【讨论】:
如果您可以避免触发异常,请尝试重写代码以检查这些输入字段是否为空,如果适用,这些输入是否为数字。捕获异常有时会对性能造成很大影响。
【讨论】:
我同意这听起来像是当您的 Double.parseDouble(s) 在空字符串或空字符串上失败时发生的 NumberFormatException。
如果您的输入控件允许字母数字输入,您可以(并且应该)捕捉到这一点,但为了用户友好,您应该首先确保字符串不为空。然后您可以提供两条有用的错误消息:
您还可以考虑使用或构建一个输入控件,该控件只允许正确格式化数字输入,包括从不传回空白。如果你有这种控制,你应该不捕获解析异常,因为什么都不应该发生,如果有,这意味着有一个BIG问题,你真的想要大声失败就知道了。
如果您使用的是纯数字控件,那么您可能只是返回一个空字符串。
【讨论】:
此外,如果您使用的是 IDE,您可以附加 SDK 的源代码并直接查找源代码以查看它抛出的所有异常和位置。这样你就可以在正确的地方处理异常。
【讨论】: