在上面的实例中只是检查了邮箱地址是否有效。如果用户想检查邮箱是否为雅虎邮箱,或检查邮箱是否有效等,就会出现多个可能发生异常的情况。用户可以使用多个if…else代码块,或一个switch代码块,或者嵌套多个异常。这些异常能够使用不同的exception类,并返回不同的错误消息。
【例9.9】
运行后结果如图9-12所示。上面的代码测试了两种条件,如果任一条件不成立,则抛出一个异常。
【案例分析】
(1)customException()类是作为旧的exception类的一个扩展而创建的。这样它就继承了旧类的所有属性和方法。
(2)创建errorMessage()函数。若email地址不合法,则该函数返回一个错误消息。
(3)执行try代码块,在第一个条件下不会抛出异常。
(4)由于email含有字符串yahoo,因此第二个条件会触发异常。
(5)catch代码块会捕获异常,并显示恰当的错误消息。