c# - 明智地使用 try/catch

标签 c# error-handling try-catch

<分区>

我希望这个话题不要太哲学:)

一般来说,我正在开发一个与外部世界有很多联系的应用程序。 您保存和读取文件,连接到数据库,读取通过 TCP 协议(protocol)的数据包,将打印任务发送到打印机,解析用户文本输入等等。这些操作中的每一个在理论上都可能以多种可能的方式出错。

我的问题是我厌倦了为数百条指令编写 try/catch block 。它使代码长两倍,阅读起来更糟,而不是做一些“真正的”编码,我继续向日志写入可能永远不会发生的消息。

但是还有其他选择吗?

您的方法是什么?制作所有这些 try/catch block ?或者只是忽略这些可能的错误并仅在用户报告后才处理实际错误?

我们是否应该永远不允许应用程序崩溃,我们是否应该预测用户的任何愚蠢行为,或者不做愚蠢行为是用户的问题吗?

将大块代码放入 try/catch 还是放入单个指令更好?

如果有任何建议或意见,我将不胜感激。

最佳答案

如果您的代码的一部分可能会中断,则不应使用异常。

异常(exception)是特殊情况!

This MSDN article提出了几个明智的 alertnatives,即 Tester-Doer 模式和 Try-Parse 模式。

关于c# - 明智地使用 try/catch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19513235/

相关文章:

C# 使用 HTTPWebRequest 拉取网页并从该站点执行 javascript

c# - 将列表传递给任务

c++ - 如何在C++中正确使用hash_set

python - 如果函数为 false,则尝试/异常(exception)

c# - Log4net 获取日志文本

javascript - 有关 net::ERR_CONNECTION_TIMED_OUT 的信息

node.js - 我是否为nodejs正确设置了域?

c++ - 异常对象的静态类型

Python:尝试为多种错误类型引发多用途异常

c# - Automapper 中缺少类型映射配置或不支持的映射错误