△usingSystem; namespa...... using System; namespace ConsoleApplication2 { /// /// Class1 的摘要说明。 /// class Class1 { static string[] eTypes={"none","simple","index","nested index"}; [STAThread] static void Main(string[] args) { foreach(string eType in eTypes) { try { Console.WriteLine("Main() try block reached."); Console.WriteLine("ThrowException(\"{0}\") called.",eType); ThrowException(eType); Console.WriteLine("Main() try block continues."); } catch(System.IndexOutOfRangeException e) { Console.WriteLine("Main() System.IndexOutOfRangeException catch "+ " block reched.Message:\n\"{0}\"",e.Message); } catch { Console.WriteLine("Main() general catch block reached."); } finally { Console.WriteLine("Main() finally block reached."); } Console.WriteLine(); } } static void ThrowException(string exceptionType) { Console.Write("ThrowException(\"{0}\")reached.",exceptionType); switch(exceptionType) { case "none": Console.WriteLine("Not throwing an exception."); break; case "simple": Console.WriteLine("Throwing System.Exception."); throw(new System.Exception()); break; case "index": Console.WriteLine("Throwing System.IndexOutOfRangeexception."); eTypes[4]="error"; break; case "nested index": try { Console.WriteLine("ThrowException(\"nested index\"):"+"tyr block reached."); Console.WriteLine("ThrowException(\"index\")called."); ThrowException("index"); } catch { Console.WriteLine("ThrowException(\"nested index\")general"+" catch block reached."); } finally { Console.WriteLine("ThrowException(\"nested index\")finally"+"block reached."); } break; } } } } 此异常的处理说明,异常产生后,如果在当前未做Try处理,则会返到上一级,如果还未做,则返回上一级的上一级....以此类推.如果被任意一级Catch到,则上一级不会再得到. |
|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )
GMT+8, 2024-9-29 17:32 , Processed in 0.187505 second(s), 12 queries , Gzip On, MemCache On.
Powered by Discuz! X3.5
© 2001-2023 Discuz! Team.