Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Finding out what exceptions a method might throw in C#

Tags:

c#

.net

exception

Is there any way to find out what exceptions might be thrown by any method in .NET code? Ideally I want to see what might be thrown and choose which ones I want to handle. I guess I want the information you'd get from the throws clause in java.

The situation is I'm doing a linq query on an xml document from the network and want to know what could go wrong. I could open up the assembly in reflector and have a look but I thought there might be an easier way.

like image 288
Helephant Avatar asked Nov 05 '08 10:11

Helephant


People also ask

Which exceptions can be thrown?

Before you can catch an exception, some code somewhere must throw one. Any code can throw an exception: your code, code from a package written by someone else such as the packages that come with the Java platform, or the Java runtime environment.

What happens when exception is thrown by method?

When a method declares that it throws an exception, it is not required to handle the exception. The caller of a method that throws exceptions is required to handle the exceptions (or throw them to its caller and so on) so that the flow of the program can be maintained.


2 Answers

.NET does not have enforced ("checked") exceptions like java. The intellisense might show this information, if the developer has added a /// <exception.../> block - but ultimately more exceptions can happen than you expect (OutOfMemoryException, ThreadAbortException, TypeLoadException, etc can all happen fairly unpredictably).

In general, you should have an idea of what things are likely to go wrong, and which ones you can actually do something useful about. In most cases, the correct behaviour is to let the exception bubble up (just running any "finally" code to release resources).

Eric Lippert has a good blog on this subject here.

like image 199
Marc Gravell Avatar answered Sep 21 '22 16:09

Marc Gravell


I think that Exception hunter can provide this information however it costs money...

like image 43
reshefm Avatar answered Sep 21 '22 16:09

reshefm