php学习笔记——错误异常处理及路径问题

来源:互联网 发布:淘宝网折八百 编辑:程序博客网 时间:2024/04/29 18:06

一个大的项目中有大半部分程序是用来处理错误与异常的,die()常用,

die()

die等同于 exit(),但还可以打印文字出来。

die("文件不存在");
相当于
exit();echo "文件不存在";

异常处理:

$file = fopen("aa.txt","r");echo "ok"; 
这样会出现问题,因为没有处理文件;所以异常处理需要对它先判断是否存在:

if(file_exists("aa.txt")){$file = fopen("aa.txt","r");echo "ok";fclose();} else{die("文件不存在");}

PHP异常处理【重点】
 
1、基本语法
        try{
            //可能出现错误或异常的代码
            //catch 捕获  Exception是php已定义好的异常类
        } catch(Exception $e){
            //对异常处理,方法:
                //1、自己处理
                //2、不处理,将其再次抛出
        }
2、处理处理程序应当包括:
  1. Try - 使用异常的函数应该位于 "try"  代码块内。如果没有触发异常,则代码将照常继续执行。但是如果异常被触发,会抛出一个异常。
  2. Throw - 这里规定如何触发异常。每一个 "throw" 必须对应至少一个 "catch"
  3. Catch - "catch" 代码块会捕获异常,并创建一个包含异常信息的对象 

让我们触发一个异常:

复制代码
 1 <?php 2 //创建可抛出一个异常的函数 3 function checkNum($number){ 4     if($number>1){ 5         throw new Exception("Value must be 1 or below"); 6     } 7     return true; 8 } 9 10 //在 "try" 代码块中触发异常11 try{12     checkNum(2);13     //如果异常被抛出,那么下面一行代码将不会被输出14     echo 'If you see this, the number is 1 or below';15 }catch(Exception $e){16     //捕获异常17     echo 'Message: ' .$e->getMessage();18 }19 ?>
复制代码

上面代码将获得类似这样一个错误:

Message: Value must be 1 or below 

例子解释:

上面的代码抛出了一个异常,并捕获了它:

  1. 创建 checkNum() 函数。它检测数字是否大于 1。如果是,则抛出一个异常。
  2. 在 "try" 代码块中调用 checkNum() 函数。
  3. checkNum() 函数中的异常被抛出
  4. "catch" 代码块接收到该异常,并创建一个包含异常信息的对象 ($e)。
  5. 通过从这个 exception 对象调用 $e->getMessage(),输出来自该异常的错误消息


路径问题:
绝对路径:就是文件所在的具体位置,如:

“D:/photos/1.jpg”;

相对路径:与程序所在位置有关,如:

“1.jpg”

0 0
原创粉丝点击