当前位置:  开发笔记 > 编程语言 > 正文

你用什么样的异常消息?

如何解决《你用什么样的异常消息?》经验,为你挑选了3个好方法。

在编写抛出我在这里询问的异常的代码时,我走到了我的消息的末尾,并在标点符号处停了下来.我意识到几乎所有我抛出的异常消息都可能有!某处.

throw new InvalidOperationException("I'm not configured correctly!");
throw new ArgumentNullException("You passed a null!");
throw new StupidUserException("You can't divide by 0!  What the hell were you THINKING???  DUMMY!!!!!");

在编写异常消息时你会采取什么样的语气?在浏览日志时,您是否发现任何特定类型的消息实际上比另一种更有帮助?



1> Jon Skeet..:

只是事实上.包括调试时可能需要的所有信息,但不多于此.

我唯一一次在异常消息中包含感叹号,如果它表明发生了真正奇怪的事情.大多数错误并不是奇怪的,只是不正确的环境,用户错误或简单的编程错误的产物.



2> John Rudy..:

我尝试反映我编码的框架的语气,语法和标点符号样式.你永远不知道其中一条消息何时可能真正在客户或用户面前出现,所以我保持一切专业,非评判性和具体到足以进行故障排除 - 而不是特别提出任何安全问题.码.

我在所有字符串(UI和异常)中都避免使用感叹号,例如瘟疫,除了(偶然)在我的单元测试中.



3> erickson..:

系统消息中的对话音使该软件看起来不专业且草率。感叹号,侮辱和语在完善的异常消息中实际上没有位置。

另外,我倾向于将Java中的不同样式用于运行时异常和已检查的异常,因为运行时异常是针对犯错的程序员的。由于运行时异常可能会显示给最终用户,因此我仍然“保持它的整洁”,但是它们可能更简洁和晦涩。已检查的异常消息应该更有用,因为如果您描述问题,则可能是用户可以解决问题(例如,找不到文件,磁盘已满,没有通往主机的路由等)。

在缺少信息例外的特定字段的情况下,有帮助的一件事是有问题的数据:

throw new IndexOutOfBoundsException("offset < 0: " + off);

推荐阅读
我我檬檬我我186
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有