如果我们不仅可以抛出异常,还可以抛出接受,那该怎么办?
你有这些情况,你需要做一些事情,直到正确的事情完成。 示例:通过不同方法查找网址
通常你会做类似的事情(在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');
}