So, I know that try/catch does add some overhead and therefore isn’t a good way of controlling process flow, but where does this overhead come from and what is its actual impact?
Share
Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.
Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.
Lost your password? Please enter your email address. You will receive a link and will create a new password via email.
Please briefly explain why you feel this question should be reported.
Please briefly explain why you feel this answer should be reported.
Please briefly explain why you feel this user should be reported.
I’m not an expert in language implementations (so take this with a grain of salt), but I think one of the biggest costs is unwinding the stack and storing it for the stack trace. I suspect this happens only when the exception is thrown (but I don’t know), and if so, this would be decently sized hidden cost every time an exception is thrown… so it’s not like you are just jumping from one place in the code to another, there is a lot going on.
I don’t think it’s a problem as long as you are using exceptions for EXCEPTIONAL behavior (so not your typical, expected path through the program).