Reputation: 101
Is a simple question that seeks a simple answer. No code is needed as a demonstration. When i call a function it returns an exception and the whole function stops. How can I ignore the exception and continue the function?
Upvotes: 3
Views: 7500
Reputation: 23036
You cannot ignore the exception.
If you do not catch it then the exception will propogate up the call stack until somebody does catch it and handle it, or it reaches the top of the call stack and your program halts.
To avoid that, you simply catch the exception and decide how to handle it. If handling it means doing nothing it then simply ... do nothing when you catch the exception:
try
{
SomeFnWhichThrowsAnException();
}
catch
{
// NO-OP
}
The // NO-OP
comment (short of "No-Operation") is an indicator I use to indicate that the "handling" of the exception is to deliberately do nothing, to avoid any potential misunderstanding on the part of anyone reading suh code in the future and interpreting an empty catch block as an error or an oversight.
It should be mentioned that even with a comment and a "good reason" to do nothing in response to an exception, this is highly suspect and is a very bad code smell.
It may be more common to specifically ignore very specific exceptions or to do so only in specific circumstances, but to ignore every possible exception is highly unadvisable (consider that this will include exceptions such as stack overflows or out of memory conditions etc).
Upvotes: 7
Reputation: 271420
A try...catch statement should do this job:
try {
// your code that might throw an exception here
} catch {
}
// code here will execute even if there is an exception
However, try...catch statements are not designed to act as a flow control statement. You shouldn't just ignore the exception without a good reason. You should avoid the exception being thrown in the first place.
For example, Convert.ToInt32
can throw an exception if the string parameter is in the wrong format. You shouldn't use try...catch here as a way to detect invalid user input. You should check whether the input is valid using some other method, like regex for example.
Upvotes: 2
Reputation: 36
You can use a try {..} catch {..} statement. Here's the reference docs. https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/try-catch
Upvotes: 0