You’ve seen the advice before— it’s not a good programming practice to catch System.Exception . Because managed exceptions are hierarchical, catching the top of the hierarchy—e.g., catch(Exception)—is an easy way to make sure that you catch all exceptions.