Csharp/CSharp Tutorial/Language Basics/Exception in Method

Материал из .Net Framework эксперт
Версия от 15:19, 26 мая 2010; Admin (обсуждение | вклад) (1 версия)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

An exception can be generated by one method and caught by another

<source lang="csharp">using System;

class MainClass {

 public static void Main() {  
 
   try {  
     genException(); 
   }  
   catch (IndexOutOfRangeException) {  
     // catch the exception  
     Console.WriteLine("Index out-of-bounds!");  
   }  
   Console.WriteLine("After catch statement.");  
 }  
 public static void genException() { 
   int[] nums = new int[4];  

   Console.WriteLine("Before exception is generated."); 
 
   // Generate an index out-of-bounds exception. 
   for(int i=0; i < 10; i++) { 
     nums[i] = i; 
     Console.WriteLine("nums[{0}]: {1}", i, nums[i]); 
   } 

   Console.WriteLine("this won"t be displayed");  
 } 

}</source>

Before exception is generated.
nums[0]: 0
nums[1]: 1
nums[2]: 2
nums[3]: 3
Index out-of-bounds!
After catch statement.

System.Exception is the base exception class. All exceptions in .NET are derived from System.Exception.

<source lang="csharp">using System; public class Starter {

   public static void Main() {
       try {
           int var1 = 5, var2 = 0;
           var1 /= var2;    // exception occurs
       } catch (Exception except) {
           if (except is SystemException) {
               Console.WriteLine("Exception thrown by runtime");
           } else {
               Console.WriteLine("Exception thrown by application");
           }
       }
   }

}</source>