C#学习七
C#学习7


C#学习7:程序中的异常和错误处理
使用try,catch语句处理异常
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace cam { /// <summary> /// MainWindow.xaml 的交互逻辑 /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void button1_Click(object sender, RoutedEventArgs e) { try { int num1 = int.Parse(txtNum1.Text); int num2 = int.Parse(txtNum2.Text); int result = num1 + num2; txtResult.Text = result.ToString(); } catch (FormatException cam) //格式错误 { MessageBox.Show(cam.Message); } catch (OverflowException cam) //数据溢出 { MessageBox.Show(cam.Message); } catch (Exception cam) { MessageBox.Show(cam.Message); } } } }
用checked和unchecked检查整型算术运算是否溢出
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace com { class Program { static void Main(string[] args) { int number = int.MaxValue; Console.WriteLine(number); try { checked { number++; } } catch (Exception cam) { Console.WriteLine(cam.Message); } Console.WriteLine(number); } } }
try,catch,finally是很常用的语法结构,用来控制可能发生异常时的程序流程,其中catch和finally至少要有一个,如果在try块中有return,finally仍会执行
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace com { class Program { static void Main(string[] args) { int number = int.Parse(Console.ReadLine()); try { string name = dayName(number); Console.WriteLine(name); } catch (ArgumentOutOfRangeException ex) { Console.WriteLine(ex.Message); } finally { Console.WriteLine("程序结束"); } } static string dayName(int number) { switch (number) { case 1: return "星期一"; case 2: return "星期二"; case 3: return "星期三"; case 4: return "星期四"; case 5: return "星期五"; case 6: return "星期六"; case 7: return "星期日"; default: throw new ArgumentOutOfRangeException("日期输入不正确"); //手动抛出错误 } } } }