檢查使用者輸入的是否是一個0-5中間的數字: 多重catch塊
using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ExceptionDemo{ class Program { static void Main(string[] args) { string userInput; while (true) { try { Console.Write("Input a number between 0 and 5" + "(or just hit return to exist)>"); userInput = Console.ReadLine(); if (userInput == "") break; int index = Convert.ToInt32(userInput); if (index < 0 || index > 5) throw new IndexOutOfRangeException("You typed in " + userInput); Console.WriteLine("Your number was " + index); } catch (IndexOutOfRangeException ex) { Console.WriteLine("Exception: " + "Number should between 0 and 5." + ex.Message); } catch (Exception ex) { Console.WriteLine("An exception was thrown. Message was: {0}" + ex.Message); } catch { Console.WriteLine("Some other exception has occured"); } finally { Console.WriteLine("Thank you"); } } } }}
當輸入的是非0-5之間的數位時候,拋出的第一個異常,如果是一個字串,拋出的第二個異常。第三個異常不帶參數,這個catch塊處理的是其他沒有用C#編程的代碼。
下面這個是MSDN一個try…finally的異常處理
static void CodeWithCleanup() { System.IO.FileStream file = null; System.IO.FileInfo fileInfo = null; try { fileInfo = new System.IO.FileInfo("C:\\file.txt"); file = fileInfo.OpenWrite(); file.WriteByte(0xF); } catch (System.Exception e) { System.Console.WriteLine(e.Message); } finally { if (file != null) { file.Close(); } } }