throw new Exception() 和 throw_exception() 有什么区别?

来源:6-9 完成文章排序功能

宇xixi

2017-01-23

// 代码1-模型层
if(!$newsId || !is_numeric($newsId)){
    throw new Exception("Id不符合规则");
}
if(!$listorderId || !is_numeric($listorderId)){
    throw new Exception("listorderId不符合规则");
}
//代码2-模型层
if(!$newsId || !is_numeric($newsId)){
    throw_exception("Id不符合规则");
}
if(!$listorderId || !is_numeric($listorderId)){
    throw_exception("listorderId不符合规则");
}
//控制器层
try{
    if(!$listorder || !is_array($listorder)){
        return show(0,"排序值出现错误");
    }else{
        foreach($listorder as $newsId => $value){
            $res = D("News")->updateListorderById($newsId,$value);
            if($res === false){
                $error[] = $newsId;
            }
        }
    }
}catch(Exception $e){
    return show(0,$e->getMessage());
}

当使用listorder故意输入不为数字时

●模型层使用throw new Exception()抛出异常,控制器层可以捕获到抛出的异常,并执行catch的内容

●模型层使用throw_exception()抛出异常,控制器无法捕获,会直接返回相应的结构。如下图:

http://szimg.mukewang.com/5885d5100001102211390508.jpg

所以想请问下两者有什么区别?


写回答

1回答

zjx2017

2017-04-25

一个是抛出异常类Exception的对象,即手动抛出异常.
一个是新建一个异常类Exception的对象,但并不抛出.

0
0

前端到后台ThinkPHP开发整站

用PHP+MySQL+Ajax开完新闻资讯整站,实现“小全栈”的梦想

3360 学习 · 1014 问题

查看课程