Learning ROS for Robotics Programming - Second Edition
异常匹配当一个异常抛出时,异常处理系统会根据所写的异常处理器顺序找到“最近”的异常处理器,而不会搜寻更多的异常处理器。异常匹配并不要求在异常和处理器之间匹配得十分完美。一个对象或一个派生类对象的引用将与基类处理器匹配(然而假若处理器针对的是对象而非引用,异常对象在传递给处理器时会被“切片”,这样不会受到破坏但会丢失所有的派生类型信息)。假若抛出一个指针,标准指针转化处理会被用于匹配异常,但不会有自动的类型转化将某个异常类型在匹配过程中转化为另一个。下面是一个例子:尽管我们可能认为第一个处理器会使用构造函数转化,将一个except1对象转化成except2对象,但是系统在异常处理期间将不会执行这样的转换,我们将在except1处终止。下面的例子展示基类处理器怎样捕获派生类的异常:
-
Java编程异常处理 中提到,异常匹配的机制是如何决定处理器的优先级的。
-
关于异常处理的优劣观,我们可以看到处理器顺序的重要性。
-
在浅谈Java异常处理父子异常的处理 一文中,详细描述了基类和派生类之间的匹配问题。
总之,这些资源让我们对异常处理有了更深入的理解。谁能想到,如此复杂的系统背后,竟隐藏着这么多有趣的逻辑!
下载地址
用户评论