c# - 如果try-catch可以换成if-then-else,推荐哪个?

标签 c#

在我粗略的调查中,我认为任何错误都可以通过使用 if-then-else 结构来处理。下面举个简单的例子。

除以零可以用

处理
int x=1;
int y=0;
if(y==0)
    Console.WriteLine("undefined");
else
    Console.WriteLine("x/y={0}",x/y);

替换 try-catch 等价物

int x=1;
int y=0;
try
{
    Console.WriteLine("x/y={0}",x/y);
}
catch
{
    Console.WriteLine("undefined");
}

如果try-catch可以换成if-then-else,推荐哪个?

最佳答案

您永远不应该使用异常来控制流程。 异常(exception)应该是“异常(exception)”。如果你知道一些数据验证的规则,你应该使用正常的 if/then/elses。

如果您正在执行一些可能会以多种方式出错的操作(例如连接到数据库),您应该将该操作放入 try-catch block 中并采取相应措施。

唉,将某物视为“特殊”的选择取决于设计师的判断。

编辑:另外,不要低估日志记录的力量。自从我开始使用日志记录框架以来,我的调试时间减少了一半。

关于c# - 如果try-catch可以换成if-then-else,推荐哪个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18908773/

相关文章:

c# - C# 中的异步编程

c# - HttpWebResponse 始终为空

c# - 使用Redis实现登录?

c# - 在 LINQ 中按月和年对多个日期属性进行分组

c# - XUnit 测试可以从要测试的项目内运行吗?

c# - 有效操作时出现 NullReferenceException

c# - 如何在设计时从我的 WPF 应用程序获取应用程序的目录?

尽管有线程时间,c# 每分钟运行一个线程

c# - 如何让 WindowsAzureActiveDirectoryBearerAuthenticationOptions 接受带星号的观众

c# - 关于c#的点(.)运算符