Q: What are some ways try / catch / throw can develop software quality?
A: By removing one of the reasons for if statements.
The commonly utilized alternative to try / catch / throw is to return a return code (sometimes called an error code) that the caller explicitly tests through some conditional statement like if. For instance, printf(), scanf() and malloc() work this way: the caller is assume to test the return value to see if the function succeeded.
Though the return code technique is sometimes the most suitable error handling technique, there are some nasty side effects to needless adding if statements:
Degrade quality: This is well known that conditional statements are about ten times more likely to hold errors than any other sort of statement. Thus all other things being equal, if you can remove conditionals / conditional statements from your code, you will possible have more robust code.
Slow down time-to-market: As conditional statements are branch points which are associated to the number of test cases that are required for white-box testing, unnecessary conditional statements enhance the amount of time which needs to be devoted to testing. Essentially if you don't exercise all branch point, there will be instructions within your code that will never have been executed under test conditions till they are seen by your users/customers. That's terrible.
Enhance development cost: Bug finding, bug fixing, and testing are all enhanced by unnecessary control flow difficulty.
thus compared to error reporting by means of return-codes and if, using try / catch / throw is likely to result in code which has fewer bugs, is less costly to develop, and has faster time-to-market. Certainly if your organization doesn't contain any experiential knowledge of try / catch / throw, you might wish to use it on a toy project first just to make sure you know what you're doing you must always get used to a weapon on the firing range before you bring it to the front lines of a shooting war.