用异常实现基本错误处理

来源:百度文库 编辑:神马文学网 时间:2024/04/29 22:57:26

用异常实现基本错误处理
调用方法时,错误处理是一个必须考虑的问题。尤其要懂得的是,如何将一个错误报告给调用者。本节探讨了如何利用异常处理(exception handling)机制来处理错误。
利用异常处理,方法可以将有关错误的信息传给调用方法,同时不需要为此显式地提供任何参数。代码清单4-17略微修改了第1章的HeyYou程序。这一次,它不是请求用户输入姓氏,而是请求输入年龄。
代码清单4-17 将一个string转换成int
using System; class ExceptionHandling
{
static void Main()
{
string firstName;
string ageText;
int age;       Console.WriteLine("Hey you!");       Console.Write("Enter your first name: ");
firstName = System.Console.ReadLine();       Console.Write("Enter your age: ");
ageText = Console.ReadLine();
age = int.Parse(ageText);       Console.WriteLine(
"Hi {0}! You are {1} months old.",
firstName, age*12);
}
}
输出4-11展示了代码清单4-17的结果。
输出4-11
Hey you!
Enter your first name: Inigo
Enter your age: 42
Hi Inigo! You are 504 months old.
System.Console.ReadLine()的返回值存储在一个名为ageText的变量中,然后传给int数据类型提供的一个Parse()方法。该方法获取代表数字的一个string值,然后把它转换为int类型。
初学者主题:42作为字符串和整数
C#是一种强类型语言。换言之,不仅数据值是紧要的,与数据关联的类型同样是紧要的。所以,值为42的一个字符串值和值为42的一个整数值是完全不同的。其中,字符串由4和2这两个字符构成,而int是数值42。
最终,System.Console.WriteLine()语句以月份为单位打印年龄(age*12)。
但是,用户完全有可能输入一个无效的整数。例如,假定用户输入“forty-two”,那么会发生什么呢?Parse()方法不能完成这样的一个转换。它希望用户输入只包含数字的一个字符串。假如Parse()方法接收到一个无效的值,它需要某种方式将这一事实反馈给调用者。