Exception Filtering in the Catch Block in VB.net

By: Steven Holzner Emailed: 1605 times Printed: 2077 times    

Latest comments
By: rohit kumar - how this program is work
By: Kirti - Hi..thx for the hadoop in
By: Spijker - I have altered the code a
By: ali mohammed - why we use the java in ne
By: ali mohammed - why we use the java in ne
By: mizhelle - when I exported the data
By: raul - no output as well, i'm ge
By: Rajesh - thanx very much...
By: Suindu De - Suppose we are executing

When you're handling exceptions, you usually want to handle different types of exceptions differently, according to the nature of the exception that occurred. This process is called filtering. There are actually two ways to filter exceptions with Catch blocks. First, you can filter on specific classes of exceptions, which means you have to prepare for the various exceptions you want to handle.

Exceptions are based on the Visual Basic Exception class (which, like all other objects in Visual Basic, is based on the Object class). In general, when you use Visual Basic statements that are capable of throwing exceptions, the Visual Basic documentation will tell you what possible exceptions each statement may throw. However, that won't help in tracking down exceptions that occur when you're just using the general syntax of the language, such as when you divide two numbers and an overflow exception occurs. To track down what class such an exception corresponds to, you could take a look at the Visual Basic documentation for the Exception class, which lists the classes derived from it:

Object
   Exception
      ApplicationException
      CodeDomSerializerException
      InvalidPrinterException
      IOException
      IsolatedStorageException
      PathTooLongException
      CookieException
      ProtocolViolationException
      WebException
      MissingManifestResourceException
      SUDSGeneratorException
      SUDSParserException
      SystemException
      UriFormatException
      SoapException

Each derived class itself has many derived classes, and if you keep searching (each class above is a hyperlink in the documentation, so you just keep clicking), you'll eventually find the OverflowException class, which is based on the ArithmeticException class, which is based on the SystemException class, which is based on the Exception class:

Object
   Exception
      SystemException
         ArithmeticException
            OverflowException

There is an easier way to do this if you can generate the exception you're anticipating—just use the Exception class's getType method (such as e.getType) to get the type of the exception as a string. Here's an example where I'm providing code to explicitly handle overflow exceptions:

Module Module1
    Sub Main()
        Dim int1 = 0, int2 = 1, int3 As Integer
        Try
            int3 = int2 / int1
            System.Console.WriteLine("The answer is {0}", int3)
        Catch e As OverflowException
            System.Console.WriteLine("Exception: Arithmetic overflow!")
        End Try
    End Sub
End Module

The second exception-filtering option lets you use the Catch statement to filter on any conditional expression, using the When keyword. This option is often used to filter by exception number, which you can check with the Err object's Number property. Here's an example that filters overflow exceptions by number (which is exception number 6 in Visual Basic .NET):

Module Module1
    Sub Main()
        Dim int1 = 0, int2 = 1, int3 As Integer
        Try
            int3 = int2 / int1
            System.Console.WriteLine("The answer is {0}", int3)
        Catch When Err.Number = 6
            System.Console.WriteLine("Exception: Arithmetic overflow!")
        End Try
    End Sub
End Module

VB.net Home | All VB.net Tutorials | Latest VB.net Tutorials

Sponsored Links

If this tutorial doesn't answer your question, or you have a specific question, just ask an expert here. Post your question to get a direct answer.



Bookmark and Share

Comments(0)


Be the first one to add a comment

Your name (required):


Your email(required, will not be shown to the public):


Your sites URL (optional):


Your comments:



More Tutorials by Steven Holzner
Changes in Controls from VB6 to VB.net
Throwing a Custom Exception in VB.net
Throwing an Exception in VB.net
Using Finally in VB.net
Using Multiple Catch Statements in VB.net
Exception Filtering in the Catch Block in VB.net
Raising an Exception Intentionally in VB.net
Getting an Exception's Number and Description in VB.net
Using On Error GoTo 0 in VB.net
Using Resume Next and Resume Line in VB.net
Understanding Scope in VB.net
Properties in VB.net
Procedure Delegates in VB.net
Preserving a Variable's Values between Procedure Calls in VB.net
Specifying Optional Arguments with default values in Procedures in VB.net

More Tutorials in VB.net
Scope in VB.net
Unstructured Exception Handling in VB.net
Structured Exception Handling in VB.net
Creating Sub Procedures in VB.net
Creating Functions in VB.net
Passing a Variable Number of Arguments to Procedures in VB.net
Specifying Optional Arguments with default values in Procedures in VB.net
Preserving a Variable's Values between Procedure Calls in VB.net
Procedure Delegates in VB.net
Properties in VB.net
Understanding Scope in VB.net
Using Resume Next and Resume Line in VB.net
Using On Error GoTo 0 in VB.net
Getting an Exception's Number and Description in VB.net
Raising an Exception Intentionally in VB.net

More Latest News
Most Viewed Articles (in VB.net )
How to export from database to excel using VB.net
Your first VB.NET Crystal Reports - A step by step guide
How To Connect To A MySql Database in VB.net
How to export from DataGridView to excel using VB.net
Visual Basic Statements
Insert cell data in an Excel file using OLEDB in VB.net
Creating Tree Views in Code using VB.net
What's New in VB .NET? A comparison of VB vs VB.net
Assemblies, Solutions and Projects in VB .NET
How to Open and Edit Cells in an Excel 2007 file in VB.NET
Client Socket Program sample in VB.net
Structured Exception Handling in VB.net
Changes in Controls from VB6 to VB.net
Using Select Case in VB.net
For Loop in VB.net
Most Emailed Articles (in VB.net)
For Loop in VB.net
For Each…Next Loop in VB.net
How to export from DataGridView to excel using VB.net
Passing a Variable Number of Arguments to Procedures in VB.net
Raising an Exception Intentionally in VB.net
“Using If with And” and Comparing two integers using If
What is .NET Framework and the Common Language Runtime?
Data types in VB.net
String equals, Copy to & Copy to in VB.net
Handling Timer Events - and Creating an Alarm Clock in VB.net
Properties in VB.net
The Select Case statement in VB.net
File Extensions Used in VB .NET
Sub Procedures and Functions in VB.net
String.Contains (), compare, clone in VB.net