Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/329.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.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_Eclipse - Fatal编程技术网

什么';这是“什么?”;标准;用于处理用户错误的Java异常类型?

什么';这是“什么?”;标准;用于处理用户错误的Java异常类型?,java,eclipse,Java,Eclipse,我想区分由于系统中出现问题(例如,文件丢失)而发生的错误和代表用户的错误行为(例如,在GUI中为某些命令选择太多项) 在这些情况下,程序员是否倾向于抛出类似“UserMistakeException”(在JavaSE或EclipseAPI-s中)的东西? 然后,我会以不同的方式表示这种错误。我会说,异常就像它们的名字所说的那样,是异常的,而不是正常使用程序时发生的。正常使用包括最终用户可能犯的一些错误。用户输入验证是一个完全不同的问题,您只需以一种不需要抛出任何异常的方式准备用户所犯的错误 不,

我想区分由于系统中出现问题(例如,文件丢失)而发生的错误和代表用户的错误行为(例如,在GUI中为某些命令选择太多项)

在这些情况下,程序员是否倾向于抛出类似“UserMistakeException”(在JavaSE或EclipseAPI-s中)的东西?
然后,我会以不同的方式表示这种错误。

我会说,异常就像它们的名字所说的那样,是异常的,而不是正常使用程序时发生的。正常使用包括最终用户可能犯的一些错误。用户输入验证是一个完全不同的问题,您只需以一种不需要抛出任何异常的方式准备用户所犯的错误

不,没有这样的例外。当用户选择可选择的东西时,我看不到异常情况

你宁愿重新思考你的交互设计。可能是你应该禁止选择太多的项目。您可以允许选择,但通过禁用某些按钮来阻止执行


但请告诉您的用户在每种情况下都发生了什么。

在我的应用程序中,有一个自定义异常(扩展
RuntimeException
),我为这种情况创建了该异常。当抛出此类异常时。客户端将在错误对话框中向用户显示消息。所有其他异常都会导致显示一个带有详细信息按钮的通用对话框,该对话框允许用户查看stacktrace并将其发送给我。我不认为Java包含任何适合这种情况的异常类型,所以您必须创建自己的异常类型


不过,我完全同意其他答案,即用户界面应该防止所谓的“用户错误”。防止错误是可用性的基本规则之一。如果用户选择的项目太多,客户机应该进行验证,以有意义的方式显示,而不是抛出异常。在我的应用程序中,特殊异常类型仅适用于UI在将数据发送到服务器之前无法正确验证数据的情况。实际上,获得自定义异常现在非常罕见。

如果是用户错误,那么您的程序应该尝试让用户纠正它。(如果我选择的文件有问题,请告诉我问题所在,并让我重试。如果我选择的项目太多,请告诉我需要取消选择的项目数。)


作为一个人类用户,我不准备捕捉异常,所以不要把它们扔给我。

异常:-phmm,在JavaSE和Eclipse API-s中都没有发现PebcakeException:我认为用户错误是否应该被视为程序的正常流是有争议的。至少,如果可以暂时忽略用户错误的可能性,那么更容易关注主程序逻辑。尽管如此,我认为你的观点是正确的,可能有更好的方法来组织我的程序。我想我要说的主要一点是,异常抛出和捕获是相当繁重的操作,应该保存下来,以防没有更优雅的方法来准备可能的错误。嗯,用户错误也是相当严重的问题——CPU处理异常的速度有望超过用户产生异常的速度:D@Aviar不,这是无可争议的。如果你编写交互式软件,你必须处理用户交互。处理用户交互时出现异常就像用雷区封锁公路一样。好的方面,我也考虑过这个解决方案。禁用GUI项的坏处在于用户可能不清楚它们被禁用的原因。@Aivar您显示消息的方式取决于我们讨论的系统。在网站上,你可以使用横幅。对于桌面应用程序中非常罕见的事件,您可以使用MessageBox。。。只需提出另一个问题:-)