最近我遇到了一位同行写的代码,他在catch语句块中放了一个try-catch语句块!
请原谅我无法复制实际代码,但他做的类似于这样:
try
{
//ABC Operation
}
catch (ArgumentException ae)
{
try
{
//XYZ Operation
}
catch (IndexOutOfRangeException ioe)
{
//Something
}
}
我个人认为这是我见过的最糟糕的代码之一!在1到10的评分中,你认为我应该多快去表达我的看法,还是我反应过度了?
编辑: 实际上他在catch块中执行了一些操作,这些操作可以/应该在初始try失败时完成。我的问题是代码清晰性和可维护性。将异常从第一个catch块委托给不同的函数或调用函数是可以接受的,但在第一个catch块中添加可能会或可能不会引发异常的更多代码,则是我感觉不好的地方。我尽量避免多重堆叠的“if循环”语句,我发现这同样糟糕。