使用try,catch語句處理異常
[csharp]
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檢查整型算術運算是否溢出
[csharp]
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仍會執行
[csharp]
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("日期輸入不正確"); //手動拋出錯誤
}
}
}
}