php 异常处理 如何捕获异常??必须要抛出才可以吗?
举个例子打开PHP的报错提示实例化一个未定义的类$per=newPerson();这样会报出错误提示:Fatalerror:Class'Person'notfoundin...
举个例子
打开PHP的报错提示
实例化一个未定义的类
$per = new Person();
这样会报出错误提示:
Fatal error: Class 'Person' not found in D:\SPACE_PHP\uctest\exception.php on line 15
然后关闭display_errors 让页面不提示错误,增加异常处理代码
try{
throw new Exception("Person 未定义");
$per = new Person();
}catch(Exception $e){
echo 'Message: ' .$e->getMessage();
}
这时页面可以正常捕获异常,可是如果把throw new Exception("Person 未定义");
这句话注释掉就不会捕获了,如果不注释它,当我定义了person这个类的时候同样会抛出异常,也就是说我必须要先判断类是否定义才能确定是否应该抛出这个异常,这样的异常处理还有什么意思吗?我还不如打开display_errors 让它自动报错,我记得我在做JAVA的时候,可以捕获各种异常,完全实现错误自己定义。对PHP的异常处理十分郁闷,难道一定要自己先判断是不是要抛出异常,才能捕获吗??可不可以不用判断就能CATCH出 类person未定义这个错误???请教 展开
打开PHP的报错提示
实例化一个未定义的类
$per = new Person();
这样会报出错误提示:
Fatal error: Class 'Person' not found in D:\SPACE_PHP\uctest\exception.php on line 15
然后关闭display_errors 让页面不提示错误,增加异常处理代码
try{
throw new Exception("Person 未定义");
$per = new Person();
}catch(Exception $e){
echo 'Message: ' .$e->getMessage();
}
这时页面可以正常捕获异常,可是如果把throw new Exception("Person 未定义");
这句话注释掉就不会捕获了,如果不注释它,当我定义了person这个类的时候同样会抛出异常,也就是说我必须要先判断类是否定义才能确定是否应该抛出这个异常,这样的异常处理还有什么意思吗?我还不如打开display_errors 让它自动报错,我记得我在做JAVA的时候,可以捕获各种异常,完全实现错误自己定义。对PHP的异常处理十分郁闷,难道一定要自己先判断是不是要抛出异常,才能捕获吗??可不可以不用判断就能CATCH出 类person未定义这个错误???请教 展开
展开全部
php比java更灵活,别用java的编程习惯来做PHP开发!!
我做了几年PHP开发也很少用的try catch语句。
至于判断类有没有定义,可以用函数class_exists()。
另外,PHP还有个'@'符号呢
我做了几年PHP开发也很少用的try catch语句。
至于判断类有没有定义,可以用函数class_exists()。
另外,PHP还有个'@'符号呢
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询