public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void calculateClick(object sender, RoutedEventArgs e)
{
try
{
int leftHandSide = int.Parse(lhsOperand.Text);
int rightHandSide = int.Parse(rhsOperand.Text);
int answer = doCalculation(leftHandSide, rightHandSide);
result.Text = answer.ToString();
}
catch (FormatException fEx)//格式异常
{
result.Text = fEx.Message;
}
catch (OverflowException oEx)//数据溢出
{
result.Text = oEx.Message;
}
catch (InvalidOperationException ioEx)//非法操作异常
{
result.Text = ioEx.Message;
}
catch (Exception ex)
{
result.Text = ex.Message;
}
}
private int doCalculation(int leftHandSide, int rightHandSide)
{
int result = 0;
if (addition.IsChecked.HasValue && addition.IsChecked.Value)
result = addValues(leftHandSide, rightHandSide);
else if (subtraction.IsChecked.HasValue && subtraction.IsChecked.Value)
result = subtractValues(leftHandSide, rightHandSide);
else if (multiplication.IsChecked.HasValue && multiplication.IsChecked.Value)
result = multiplyValues(leftHandSide, rightHandSide);
else if (division.IsChecked.HasValue && division.IsChecked.Value)
result = divideValues(leftHandSide, rightHandSide);
else if (remainder.IsChecked.HasValue && remainder.IsChecked.Value)
result = remainderValues(leftHandSide, rightHandSide);
else
throw new InvalidOperationException("No operator selected");
return result;
}
private int addValues(int leftHandSide, int rightHandSide)
{
expression.Text = leftHandSide.ToString() + " + " + rightHandSide.ToString();
return leftHandSide + rightHandSide;
}
private int subtractValues(int leftHandSide, int rightHandSide)
{
expression.Text = leftHandSide.ToString() + " - " + rightHandSide.ToString();
return leftHandSide - rightHandSide;
}
private int multiplyValues(int leftHandSide, int rightHandSide)
{
expression.Text = leftHandSide.ToString() + " * " + rightHandSide.ToString();
return checked(leftHandSide * rightHandSide);
}
private int divideValues(int leftHandSide, int rightHandSide)
{
expression.Text = leftHandSide.ToString() + " / " + rightHandSide.ToString();
return leftHandSide / rightHandSide;
}
private int remainderValues(int leftHandSide, int rightHandSide)
{
expression.Text = leftHandSide.ToString() + " % " + rightHandSide.ToString();
return leftHandSide % rightHandSide;
}
private void quitClick(object sender, RoutedEventArgs e)
{
this.Close();
}
}
C#输入类型检查异常
最新推荐文章于 2023-08-15 20:44:49 发布