小编bin*_*ard的帖子

C#抽象类命名约定

在C#中,接口命名约定是I<myInterfaceName>(ex :) IList.

是否有抽象类的命名约定?

如果没有,主要建议是什么?

.net c# naming-conventions

41
推荐指数
2
解决办法
4万
查看次数

为什么C#编译器在catch中授权"throw ex",是否存在"throw ex"有用的情况?

在C#中,较年轻的开发人员经常使用"throw ex"而不是"throw"来向父方法抛出异常.

示例:

try
{
    // do stuff that can fail
}
catch (Exception ex)
{
    // do stuff
    throw ex;
}
Run Code Online (Sandbox Code Playgroud)

"throw ex"是一种不好的做法,因为堆栈跟踪被截断在失败的方法之下.因此调试代码更加困难.所以代码必须是:

try
{
    // do stuff that can fail
}
catch (Exception ex)
{
    // do stuff
    throw;
}
Run Code Online (Sandbox Code Playgroud)

我的问题是为什么编译器授权这个(或者不显示警告信息?)是否存在"抛出ex"有用的情况?

c# exception-handling exception

6
推荐指数
2
解决办法
232
查看次数