Я посмотрел на несколько других вопросов try catch finally
, но я не уверен, что на этот ответ был дан ответ. Есть ли запах плохо делать что-то вроде:Try/Catch/Наконец, используйте исключение из Catch in finally?
Exception? ex = null;
try { //something }
catch (Exception e) { ex = e ;}
finally {
DoSomething();
}
... //more code
//end of method
if (ex !=null) { throw ex; }
В принципе, я пытаюсь обеспечить определенный код (за пределами TRY/улова/наконец) выполняется и что исключение, если один случается, но до тех пор, пока указанный код не запустится. Я не могу поместить весь код в блок finally
, потому что он вне некоторых условных выражений.
Если это действительно так, плохо пахнет (я подозреваю, что это так), как бы добиться этого?
Какие полезные вещи вы делаете в местах внутри этого улова и после того, как, наконец, это запрет на удаление улова в целом и распространение исключения? Я думаю, если вы «выбросите ex», вы получите меньше информации позже, когда поймаете его (например, источник и тому подобное). –