Language agnostic 尝试/抓住并返回

Language agnostic 尝试/抓住并返回,language-agnostic,Language Agnostic,你喜欢什么样的解决方案? 我更喜欢解决方案2,但我想知道是否存在更好的做法 谢谢大家 解决方案1-尝试/捕获嵌套 try { //some code that could throws Exception1 try { //some code that could throws Exception2 return success; } catch (Exception2 e) { return failu

你喜欢什么样的解决方案? 我更喜欢解决方案2,但我想知道是否存在更好的做法 谢谢大家

解决方案1-尝试/捕获嵌套

try
{
   //some code that could throws Exception1
   try
   {
        //some code that could throws Exception2
        return success;
   }      
   catch (Exception2 e)
   {
      return failure;
   }
}
catch (Exception1 e)
{
  return failure;
}    
解决方案2-尝试/捕获顺序

try
{
   //some code that could throws Exception1 
}
catch (Exception1 e)
{
  return failure;
}

try
{
    //some code that could throws Exception2
}      
catch (Exception2 e)
{
  return failure;
}

return success;
你可以试试

try
{
   //some code that could throws Exception1 
   //some code that could throws Exception2
}
catch (Exception1 e)
{
   return failure;
}
catch (Exception2 e)
{
   return failure;
}

return success;

-四!!我认为这是一个合理的问题,特别是对于一个刚刚起步的人来说。 为什么这是一个如此糟糕的问题

我个人会使用下面的代码,除非有令人信服的理由不这样做

try
{
   //some code that could throws Exception1 
   //some code that could throws Exception2
   //some code that could throws Exception3
}
catch (Exception e)
{
  return failure;
}

选择2,除了抛出int值时,作为goto的替代方案。在您用一个场景演示它之前,无法确定它。注意以这种方式处理未检查的异常确实是一个非常糟糕的主意。更适合代码审查stackexchange站点。“您喜欢什么解决方案?”并不是一个客观的问题。“常见问题解答”详细介绍了在此处可以询问哪些类型的问题,如果您不确定这是查看的最佳位置处理此详细异常-
异常
是最糟糕的一句话——“您不确定您编写的代码-当发生异常时,代码中会出现什么异常。”