- Products
- Purchase
Order Online Maintenance Renewal Resellers - Support
Helpdesk Online Documentation Web Forum - Our Clients
- About
About us Services Contact
From AfterLogic Wiki
Summary: Demonstrates the use of exception mechanism.
The try-catch statement consists of a try block followed by one or more catch clauses, which specify handlers for different exceptions. For example:
// Code segment expected to raise the exception try { pop.Connect(servername); } // Code segment contains the exception handler catch (MailBeeException e) { Console.WriteLine(e.Message); }
// Code segment expected to raise the exception try { pop.Connect(servername); } // Code segment contains the exception handler catch (MailBeeException e) { Console.WriteLine(e.Message); }
The try-block contains guarded code block that may cause an exception. The block is executed until the exception is thrown or it is completed successfully. The catch clause can be used without arguments, in such cases it catches any type of exception, and is referred to as the general catch clause. It can also take an object argument derived from MailBeeException, in this case it handles a specific exception. You can also use exceptions from MailBee exception classes. These are:
- MailBeePop3LoginBadCredentialsException Class
- MailBeePop3LoginBadMethodException Class
- MailBeePop3LoginNegativeResponseException Class
- MailBeePop3NegativeResponseException Class
Here you can overview MailBeePop3LoginBadCredentialsException methods and properties. The exception that is thrown when the POP3 server reports the given user account name and/or the password is incorrect. The error code returned by MailBeeException.ErrorCode property is the one of the field values defined in ErrorCodes class. You can get a message that describes the current exception by using Message property.
Code example:
The code below demonstrates the use of exception in a simple console application. This code handles two exceptions. The first one can occur during the connection attempt. If the typed in server name does not exist or it is impossible to connect due to a network problem, the program will generate the error message and try to reconnect. The second handled exception is thrown when the POP3 server reports the given user account name and/or the password is incorrect. On success, application prints "From:", "To:" and "Subject:" fields of all messages in the mailbox.
Pop3 pop = new Pop3(); bool b_connected = false; string server_name = ""; string ch_confirm; // Connect to POP3 server do { ch_confirm = "n"; Console.WriteLine("Enter mail server name:"); // Get typed in name of sever server_name = Console.ReadLine(); Console.WriteLine("Connecting to " + server_name + "..."); // Code expected to raise the exception try { pop.Connect(server_name); Console.WriteLine("Connection established"); b_connected = true; } // Code contains the exception handler catch (MailBeeException e) { Console.WriteLine(e.Message); Console.WriteLine("Would you like to try again? y/n"); ch_confirm = Console.ReadLine(); } // Try again until connected } while (b_connected == false && ch_confirm == "y"); if (b_connected == true) { string login; string password; int i_ErrorCode; do { i_ErrorCode = 0; ch_confirm = "n"; Console.WriteLine("Enter your login: "); // Get typed in login login = Console.ReadLine(); Console.WriteLine("Enter your password for POP3 server: "); // Get typed in password password = Console.ReadLine(); Console.WriteLine("Loging in to POP3 server. Please wait..."); // Try to login try { pop.Login(login, password); } // Handle bad credentials exception catch (MailBeePop3LoginBadCredentialsException e) { i_ErrorCode = e.ErrorCode; Console.WriteLine("Error#" + i_ErrorCode + " " + e.Message); Console.WriteLine("Would you like to try again? y/n"); ch_confirm = Console.ReadLine(); } // Try again until logged in } while (ch_confirm == "y"); if (i_ErrorCode == 0) { Console.WriteLine("Authentication successful. Receiving headers..."); // Download headers for all messages MailMessageCollection msgs = pop.DownloadMessageHeaders(); // For each message, write data to the console foreach (MailMessage msg in msgs) { Console.WriteLine("From: " + msg.From.Email + ", To: " + msg.To.AsString); Console.WriteLine("Subject: " + msg.Subject); } } // Disconnect from POP3 server pop.Disconnect(); }
Dim pop As New Pop3 Dim b_connected As Boolean = False Dim server_name As String = "" Dim ch_confirm As String ' Connect to POP3 server Do ch_confirm = "n" Console.WriteLine("Enter mail server name:") ' Get typed in name of sever server_name = Console.ReadLine() Console.WriteLine("Connecting to " & server_name & "...") ' Code expected to raise the exception Try pop.Connect(server_name) Console.WriteLine("Connection established") b_connected = True ' Code contains the exception handler Catch e As MailBeeException Console.WriteLine(e.Message) Console.WriteLine("Would you like to try again? y/n") ch_confirm = Console.ReadLine() End Try ' Try again until connected Loop While b_connected = False And ch_confirm = "y" If b_connected Then Dim login As String Dim password As String Dim i_ErrorCode As Integer Do i_ErrorCode = 0 ch_confirm = "n" Console.WriteLine("Enter your login: ") ' Get typed in login login = Console.ReadLine() Console.WriteLine("Enter your password for POP3 server: ") ' Get typed in password password = Console.ReadLine() Console.WriteLine("Loging in to POP3 server. Please wait...") ' Try to login Try pop.Login(login, password) ' Handle bad credentials exception Catch e As MailBeePop3LoginBadCredentialsException i_ErrorCode = e.ErrorCode Console.WriteLine("Error#" & i_ErrorCode & " " & e.Message) Console.WriteLine("Would you like to try again? y/n") ch_confirm = Console.ReadLine() End Try ' Try again until logged in Loop While ch_confirm = "y" If i_ErrorCode = 0 Then Console.WriteLine("Authentication successful. Receiving headers...") ' Download headers for all messages Dim msgs As MailMessageCollection = pop.DownloadMessageHeaders() ' For each message, write data to the console Dim msg As MailMessage For Each msg In msgs Console.WriteLine("From: " & msg.From.Email & ", To: " & msg.To.AsString) Console.WriteLine("Subject: " & msg.Subject) Next End If ' Disconnect from POP3 server pop.Disconnect() End If