tak*_*hin 2 php error-handling zend-framework exception-handling exception
我们都同意,为不同的任务使用不同的异常类型是要走的路.
但是,我们最终创建了像这样的ghost文件:
/**
 * Zend Framework
 *
 * LICENSE
 *
 * This source file is subject to the new BSD license that is bundled
 * with this package in the file LICENSE.txt.
 * It is also available through the world-wide-web at this URL:
 * http://framework.zend.com/license/new-bsd
 * If you did not receive a copy of the license and are unable to
 * obtain it through the world-wide-web, please send an email
 * to license@zend.com so we can send you a copy immediately.
 *
 * @category   Zend
 * @package    Zend_Dojo
 * @subpackage View
 * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 * @version    $Id: Exception.php 20096 2010-01-06 02:05:09Z bkarwin $
 */
/**
 * @see Zend_Dojo_Exception
 */
require_once 'Zend/Dojo/Exception.php';
/**
 * @category   Zend
 * @package    Zend_Dojo
 * @subpackage View
 * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
 * @license    http://framework.zend.com/license/new-bsd     New BSD License
 */
class Zend_Dojo_View_Exception extends Zend_Dojo_Exception
{
}
然后Zend_Dojo_Exception同样的Zend_Exception... 和相同的......
这个问题有没有通用的方法?
有点像throw new \My\Just\Declared\Exception\ (which extends \My\Just\Exception),所以我没有必须包装并要求所有那些鬼文件?
您似乎专注于这些"鬼"类的想法 - 没有实现的类或标记接口.坦率地说,你错过了这一点.
在ZF1中,Exception类仅是组件级别,该级别的所有异常都接收相同的异常类.这实际上只允许以下类型的捕获:
这只比在任何地方简单地抛出"例外"略胜一筹; 您需要仔细检查异常消息,以了解出现了什么问题.
现在,仔细阅读提案.
提案的要点是在捕获异常时允许更多级别的粒度:
基本上,我们现在只允许异常TYPE上的更大粒度; 如果您尝试的操作可能抛出多个相同类型的异常,则只需要检查消息.通常情况下,情况并非如此.
SPL异常在语义上相当丰富,并且ZF中的许多异常将更好地归类为这些类型(例如,无效参数应该引发InvalidArgumentException;无法解析插件将是一个很好的RuntimeException;等等).使用ZF1,这是不可能的 - 我们必须继承组件级异常,句点.通过移动到标记接口,我们既可以捕获组件级异常以及SPL级别,也可以获得更具体的异常类型.
| 归档时间: | 
 | 
| 查看次数: | 904 次 | 
| 最近记录: |