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
{
}
Run Code Online (Sandbox Code Playgroud)
然后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 次 |
最近记录: |