如何知道失败的原因?

时间:2015-05-19 07:06:42

标签: java android performance exception error-handling

如何判断应用程序是否因某些用户输入或某些内部错误而崩溃?

如何从用户的角度确定处理这些异常的最佳方法?

2 个答案:

答案 0 :(得分:1)

尝试将您的代码放入try-catch块。这将允许您捕获异常(错误),然后将堆栈跟踪写入控制台。从控制台中的堆栈跟踪中,您将能够在代码中找到错误行....

Qty = 10

答案 1 :(得分:1)

我们肯定在谈论Java吗?几乎所有东西都会因为访问数据超出限制而溢出缓冲区而引发错误。

此处抛出的异常位于名为unchecked exceptions的类中,并且它们不一定意味着被捕,因为它们是程序员错误(错误)的结果,而不是用户输入错误。

这是判断它是否是输入错误的一种方法。如果抛出的异常是未经检查的异常,那么该错误就在代码中。您可以在软件的入口点处获得未经检查的异常的完整性,以便尝试确定最后发生的事情,可能会转储堆栈跟踪以帮助用户报告错误。

如果崩溃甚至没有扔(ex:segfault),那么它发生在本机代码而不是Java代码中,并且仍然不是用户的错(尽管它可能是一个错误您使用的第三方图书馆而不是您自己的图书馆,例如,虽然开发人员有责任为此做些事情。)

如果它是你处理的用户输入错误,那么你想抛出一个检查错误并抓住它。在这种情况下,用户甚至不会看到崩溃。

从用户的角度来看,任何未捕获的异常都是程序员错误。如果软件没有从任何类型的异常中恢复,基于输入或不是,那么从技术上讲,责任在于开发人员。如果软件崩溃是因为我不小心将负数输入到需要正数的字段中,这不是我的错。即使尝试加载损坏的文件也不一定会使软件崩溃,所以也许你的面试官正在寻找一个负责任的开发人员的答案,他从来没有看到任何崩溃是用户的错误。

当我们谈论崩溃时,它不在用户输入和bug的范围内。它始终是生产质量商业软件中的一个错误。

如果它在代码域中,那么基于异常但不是意料之外的用户输入错误(例如:文件I / O错误)而存在不同类别的已检查异常,而不是完全出乎意料的错误(未选中)例外情况,您可以在控制代码和处理异常时区分。