using System; class Exceptions { static Random rand = new Random(); static void Main(string[] args) { Exceptions e = new Exceptions(); Console.WriteLine(DateTime.Now); for(int i=0; i<2000000; i++) if (e.rc1()==1) Console.WriteLine("rc1()==1"); Console.WriteLine(DateTime.Now); for(int i=0; i<2000000; i++) { try { e.e1(); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } } Console.WriteLine(DateTime.Now); } int rc1() { if(rc2()==1) { Console.WriteLine("rc2()==1"); return 1; } return 0; } int rc2() { if(rc3()==1) { Console.WriteLine("rc3()==1"); return 1; } return 0; } int rc3() { if(rc4()==1) { Console.WriteLine("rc4()==1"); return 1; } return 0; } int rc4() { if(rc5()==1) { Console.WriteLine("rc5()==1"); return 1; } return 0; } int rc5() { if(rc6()==1) { Console.WriteLine("rc6()==1"); return 1; } return 0; } int rc6() { if(rc7()==1) { Console.WriteLine("rc7()==1"); return 1; } return 0; } int rc7() { if(rc8()==1) { Console.WriteLine("rc8()==1"); return 1; } return 0; } int rc8() { if(rc9()==1) { Console.WriteLine("rc9()==1"); return 1; } return 0; } int rc9() { if(rc10()==1) { Console.WriteLine("rc10()==1"); return 1; } return 0; } int rc10() { if(rand.Next() % 100 == 1) { Console.WriteLine("Error"); return 1; } Console.WriteLine("OK"); return 0; } void e1() { e2(); } void e2() { e3(); } void e3() { e4(); } void e4() { e5(); } void e5() { e6(); } void e6() { e7(); } void e7() { e8(); } void e8() { e9(); } void e9() { e10(); } void e10() { if (rand.Next() % 100 == 1) throw new Exception("Error"); Console.WriteLine("OK"); } }