Is there a benefit to JUST a “throw” in a catch?

后端 未结 11 1245
醉梦人生
醉梦人生 2021-02-07 06:42

Been having a \"heated debate\" with a colleague about his practice of wrapping most of his functions in a try/catch but the catch has JUST a \"throw\" in it e.g.



        
11条回答
  •  借酒劲吻你
    2021-02-07 06:59

    Microsoft recommends not to catch an exception when the only thing you do is to rethrow it immediately (i dont remember the source for now). Your code should only catch exceptions that you want to handle for clean up things or similar actions.

    So generally its not a good practice to catch and rethrow an exception.

    Reasons for catching and replacing it with another exception might be

    • Logging
    • Hiding sensitive information from the caller (Stacktrace, exception details)

    And for debugging you might want to change your "Break when an exception is:"-Handler (Press Ctrl+Alt+e) the value "thrown" on selected CLR Exceptions.

    You might want to take a look at the entlib exception handler block (EHB), with which you can establish a pattern on how to deal with exceptions in your code.

    Regarding your question on performance i think its not a propblem to have many try/catch blocks in your code but you will get performance hits when your code raises and catches many exceptions.

提交回复
热议问题