Си диез / Говнокод #8625 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
try
{
//тут работа с файлами
}
catch (Exception e)
{
throw e;
}

Блок "try - передай дальше"

Запостил: Taru4 Taru4, (Updated )

Комментарии (22) RSS

            • static void Main(string[] args)
                      {
                          try
                          {
                              DoSomethig();
                          }
                          catch(Exception ex)
                          {
                              Console.Write(ex.StackTrace);
                          }
                      }
              
                      static void DoSomething()
                      {
                          try
                          {
                              InnerMethod();
                              
                          }catch(Exception e)
                          {
                              throw e;
                          }
                          
                      }
                      
                      static void InnerMethod()
                      {
                          throw new Exception();
                      }

              если написать так , то про InnerMethod словленный екзепшн ничего не знает
              Ответить
          • редко но порой это делается специально, в частности при переходе между границей API
            но в этом случае лучше кидать кастомное исключение
            Ответить
  • а на php обычно пишут так:
    catch (Exception $e)
    {
    throw new Exception($e->getMessage());
    }
    Ответить
        • А зачем пересылать исключение, если ты ничего нового туда не привносишь? Пусть уж лучше само летит, как ему хочется дальше, а наверху по стеку вызова уже пусть думают, что с ним делать, а если уж ты пересылаешь, то дополняй/подменяй имеющейся информацией.
          Ответить
          • можно например на одном уровне обработать частично, а далее переслать, не дополняя информацией
            Ответить
            • Если честно не приходит в голову такие ситуации, если необходимо подчистить мусор, который образовался после исключения, то можно просто использовать try { } finally { }.
              Ответить

Добавить комментарий

Семь раз отмерь — один отрежь, guest!

    А не использовать ли нам bbcode?


    8