I've never been certain of the best way to use try/catch statements. For instance, int.Parse throws three exceptions: ArgumentNullException, FormatException, OverflowException. Should I write code to catch all three of these exception types every time I call int.Parse?
Also, is it better to wrap every line of code which can generate an exception in it's own try/catch block or is it better to wrap several lines of code together.
And further, if I have the 2 lines of code which both throw the same exception should I place each line within it's own try/catch statements so that I know which line threw the exception? E.g.
try{
int.Parse(s1);
myHashTable.ContainsKey(s2);
}
catch(ArgumentNullException){
}
which line caused the exception?
try{
int.Parse(s1);
}
catch(ArgumentNullException){
}
try{
myHashTable.ContainsKey(s2);
}
catch(ArgumentNullException){
}
Now we know which line caused the exception but it is a little long winded.
Any advice on this would be greatly appreciated.