我在try catch块(c#)中有一段代码。代码块可以抛出两个异常(ArgumentException/NullRefernceException)。
try
{
//Code
}
catch(NullRefernceException Ex)
{
//Error Handling Code
}
catch(ArgumentException Ex)
{
//Error Handling code
}这两个异常中的错误处理代码是相同的。因此,我可以将错误处理代码保留在ArgumentException catch块中,在NullRefernceException上,我可以抛出ArgumentException吗,因为我有一个catch块跟在后面。不确定它是否可以工作,是否对性能有任何危害,以及它是否是一个好的编程实践。
我是不是别无选择,只能在两个catch块中使用相同的代码,或者使用一个单独的方法来保存错误处理代码?
我不想把错误处理代码放在单独的方法和调用中。
发布于 2010-11-24 15:29:53
也许你可以
try
{
}
catch(Exception ex)
{
if (ex is NullRefernceException || ex is ArgumentException)
{
//do something
}
else
{
//maybe re-throw the exception
}
}发布于 2010-11-24 15:27:18
发布于 2010-11-24 15:24:55
我总是尝试遵循DRY原则,这代表不要重复自己,也就是说,不要放多余的代码,因为当你需要更新一些东西时,你可能会搞砸一些东西。因此,我建议将公共逻辑放在一个单独的方法中,并从两个异常中调用它。
https://stackoverflow.com/questions/4264335
复制相似问题