集中处理在代码块中发生的异常。 在代码块中发生了异常直接抛出,代码块中不处理异常,将异常集中起来一起处理。 使用的关键字
- try:监测代码块
- catch:捕获异常
- throw:抛出异常
- finally:无论有无异常都会执行,可以省略
- Exception:异常类
复制代码 语法结构
- try{
- //检测代码
- }catch(Exception $ex){
- //捕获异常
- }
- finally{
- //不论是否有异常,都要执行,finally可以省略
- }
复制代码 例题:
- <?php
- if(isset($_POST['button'])) {
- try{
- $age=$_POST['age'];
- if($age=='')
- throw new Exception('年龄不能为空',1001); //抛出异常
- if(!is_numeric($age))
- throw new Exception('年龄必须是数字',1001); //抛出异常
- if(!($age>=10 && $age<=30))
- throw new Exception('年龄必须在10-30之间',1002); //抛出异常
- echo '您的年龄合适';
- }catch(Exception $ex){ //捕获异常
- echo '错误信息:'.$ex->getMessage(),'<br>';
- echo '错误码:'.$ex->getCode(),'<br>';
- echo '文件地址:'.$ex->getFile(),'<br>';
- echo '错误行号:'.$ex->getLine(),'<br>';
- }
- finally{
- echo '关闭数据库连接'; //不管是否有异常,finally都要执行
- }
- }
- ?>
- <form method="post" action="">
- 年龄: <input type="text" name="age"> <br />
- <input type="submit" name="button" value="提交">
- </form>
复制代码 注意:抛出异常后,try块终止执行,执行权限交给catch块.
代码运行结果:
|