抛出一个Acception(不是Exception)会不好?

时间:2016-09-16 11:20:49

标签: php exception design-patterns

如果我们不仅可以抛出异常,还可以抛出接受,那该怎么办?

你有这些情况,你需要做一些事情,直到正确的事情完成。 示例:通过不同方法查找网址

通常你会做类似的事情(在php类中):

function setUrl(){
    $this->setUrlByRequest();
    if($this->url){
        return;
    }
    $this->setUrlBySomethingelse();
    if($this->url){
        return;
    }
    $this->makeUrl();
    if(!$this->url){
        throw new Exception('no url');
    }
}

为什么不:

function setUrl(){

    try{
        $this->getUrlByRequest();
        $this->getUrlBySomethingelse();
        $this->makeUrl();
    }
    catch(Acception $acc){
        return;
    }

    // still here, url not set
    throw new Exception('No url');
}

0 个答案:

没有答案