第5版 第13章 错误和异常 13.1.3 用户定义的异常类 page 357、358
第6版 第14章 错误和异常 14.3.2 抛出用户定义的异常 page 354
14.3.3 定义异常类 page 356
第一段代码:
try
{
string name;
name = sr.ReadLine();
if (name == null)
throw new ColdCallFileFormatException("Not enough names");
if (name[0] == 'B')
{
throw new LandLineSpyFoundException(name);
}
Console.WriteLine(name);
}
catch(LandLineSpyFoundException ex)
{
Console.WriteLine(ex.Message);
}
第二段代码:
class SalesSpyFoundException : ApplicationException
{
public SalesSpyFoundException(string spyName)
: base("Sales spy found, with name " + spyName)
{
}
public SalesSpyFoundException(
string spyName, Exception innerException)
: base(
"Sales spy found with name " + spyName, innerException)
{
}
}
======================================================================
英文 Professional C# 2005 with .NET 3.0
Chapter 13: Errors and Exceptions
第一段代码:
try
{
string name;
name = sr.ReadLine();
if (name == null)
throw new ColdCallFileFormatException("Not enough names");
if (name[0] == 'B')
{
throw new SalesSpyFoundException(name);
}
Console.WriteLine(name);
}
catch(LandLineSpyFoundException ex)
{
Console.WriteLine(ex.Message);
}
第二段与中文版一致。
======================================================================
源代码第一段:(05、06版一致)
try
{
string name;
name = sr.ReadLine();
if (name == null)
throw new ColdCallFileFormatException("Not enough names");
if (name[0] == 'Z')
{
throw new SalesSpyFoundException(name);
}
Console.WriteLine(name);
}
catch(LandLineSpyFoundException e)
{
Console.WriteLine(e.Message);
}
如果单纯看书,单独看某一段代码,都没有什么问题,可选前后书写不一致,代码更是无法阅读,也不知道他们调试没有。
想起当年毕业答辩的时候,一个同学的程序清单竟然是复印的。
老师问:“为何?”
答曰:“指导老师给的。”
又问:“为啥有涂抹痕迹?”
答曰:“因为我认为程序代码有误。”
再问:“你如何判断的?”
答曰:“调试程序分动态调试和静态调试,我在脑子里面静态调试过了。”
老师怒道:“如果你改错了,就不合格!”
结果,明明是对的代码,被他改错了,该生被判不合格。