gpt4 book ai didi

java - 如何知道故障原因?

转载 作者:行者123 更新时间:2023-12-02 04:39:37 25 4
gpt4 key购买 nike

如何确定应用程序是否因响应某些用户输入或由于某些内部错误而崩溃?

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

最佳答案

我们确实在谈论 Java 吗?从越界访问数组到缓冲区溢出,几乎所有事情都会引发错误。

这里抛出的异常位于一个名为未检查异常的类中,它们甚至不一定要被捕获,因为它们是程序员错误(bug)的结果,而不是用户输入错误的结果。

这是判断是否是输入错误的一种方法。如果抛出的异常是未经检查的异常,则错误就在代码中。您可以在软件的入口点对未经检查的异常进行理智捕获,以尝试确定发生了什么作为最后的手段,可能会转储堆栈跟踪以帮助用户报告错误。

如果崩溃甚至没有抛出(例如:segfault),那么它发生在 native 代码而不是 Java 代码中,并且仍然不是用户的错误(尽管这可能是您所在的第三方库的错误)例如,使用而不是您自己的,尽管开发人员有责任对此采取措施)。

如果您处理的是用户输入错误,那么您需要抛出一个已检查的错误并捕获它。在这种情况下,用户甚至不会看到崩溃。

从用户的角度来看,任何未捕获的异常都是程序员错误。如果软件不能从任何类型的异常中正常恢复,无论是否基于输入,那么从技术上讲,责任由开发人员承担。如果软件因我不小心在需要正数的字段中输入负数而崩溃,那不是我的错。即使尝试加载损坏的文件也不一定会导致软件崩溃,因此也许您的面试官正在寻找负责任的开发人员的答案,他们永远不会将任何崩溃视为用户的错误。

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

如果它在代码域中,则存在基于异常但非意外的用户输入错误(例如:文件 I/O 错误)的不同类别的检查异常,而不是您完全意外的错误(未经检查的异常)可以区分您何时控制代码并处理异常。

关于java - 如何知道故障原因?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30318863/

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