I love Code
I love Code

Reputation: 101

Catch and Continue? C#

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

Answers (4)

Deltics
Deltics

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

Sweeper
Sweeper

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

Joe Phillips
Joe Phillips

Reputation: 51120

try
{
    MyFunctionThatErrors();
}
catch{}

Upvotes: 1

Elliot Randall
Elliot Randall

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

Related Questions