using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleAppTestDemo1 { class TestDemo1 { static void Main(string[] args) { Calculator c = new Calculator(); int r = 0; Console.WriteLine("int MaxValue : {0}", int.MaxValue); try { r = c.Add(args[0], args[1]); } catch(IndexOutOfRangeException e) { Console.WriteLine("IndexOutOfRangeException ..."); Console.WriteLine(e.Message); Console.WriteLine(e.StackTrace); } catch (OverflowException oe) { Console.WriteLine("OverflowException ..."); Console.WriteLine(oe.Message); Console.WriteLine(oe.StackTrace); } catch (Exception e) { Console.WriteLine("Exception ..."); Console.WriteLine(e.Message); Console.WriteLine(e.StackTrace); } Console.WriteLine(r); } } class Calculator { public int Add(string arg1, string arg2) { int a = 0; int b = 0; int result = 0; bool hasError = false; try { a = int.Parse(arg1); b = int.Parse(arg2); result = checked(a + b); } catch (ArgumentNullException ane) { Console.WriteLine("ArgumentNullException ..."); Console.WriteLine(ane.Message); Console.WriteLine(ane.StackTrace); hasError = true; } catch (FormatException fe) { Console.WriteLine("FormatException ..."); Console.WriteLine(fe.Message); Console.WriteLine(fe.StackTrace); hasError = true; } catch (OverflowException oe) { hasError = true; throw oe; } catch (Exception e) { hasError = true; throw e; } finally { if (hasError) { Console.WriteLine("Exception has error!"); } else { Console.WriteLine("Done!"); } } return result; } } }
======= End
原文:https://www.cnblogs.com/lsgxeva/p/10490020.html