捕捉异常C#

eom*_*off 4 c# exception

什么是正确的方法.

捕获从最具体到最普遍或相反的异常.

如果我写

try
{
...
}
catch( Exception e )
{
...
}
catch( NullReferenceException nre )
{
...
}
Run Code Online (Sandbox Code Playgroud)

NullReferenceException是否会被捕获?

Dar*_*rov 14

try
{
...
}
catch( NullReferenceException nre )
{
...
}
catch( Exception e )
{
...
}
Run Code Online (Sandbox Code Playgroud)

此外,我不会捕捉NullReferenceException,我会测试我试图访问的值是否在实际访问它之前不是null或使用null合并运算符(??)以确保此异常永远不会发生.

Exception应该避免捕捉将军.恕我直言,你应该只在一些全局异常处理程序中执行此操作,因为每次调用方法时很少处理所有可能异常的情况.在这种情况下,您应该只捕获一些特定的例外(如果有)并采取适当的操作.