1 <?php 2 3 /* 4 异常处理模式 5 非php标准错误就是异常。 6 php中错误的处理有两种情况: 7 标准错误 8 异常在面向对象的程序中,处理错误的机制。 9 异常:php在处理面向对象程序,所使用一种错误机制,将错误信息:原因,位置,封装成一个对象 10 11 语法格式: 12 try{ 13 //可能发生的异常代码 14 }catch(Exception $e){ 15 //捕获异常,进行处理 16 } 17 18 类的使用者:捕获异常信息进行处理。 19 类的定义者:抛出异常信息 Throw 20 21 tips:异常一旦没有被捕获就会发生 致命级别错误。fetal error 22 23 PDOException extends RuntimeException extends Exception 24 运行时的异常。 25 26 */ 27 28 try{ 29 30 $dsn = "mysql:localhost; port=3306; dbname=mytest"; 31 $username='root'; 32 $password='root'; 33 $options = array( 34 PDO::MYSQL_ATTR_INIT_COMMAND =>'set names utf8'; 35 ); 36 37 //连接 38 $pdo = new PDO($dsn, $username, $password, $options); 39 40 }catch(PDOException $e){ 41 echo $e->getMessage(); //获取错误信息(异常信息) 42 } 43 44 class Student{ 45 private $_gender; 46 47 public function setGender($g){ 48 if (in_array($g, array('male','female','secrt'))) { 49 $this->_gender= $g; 50 } 51 }else{ 52 throw new Exception('message:你输入的有问题'); 53 } 54 } 55 56 //类的使用者 57 try{ 58 $s = new Student(); 59 $s->setGender('aa'); 60 var_dump($s); 61 }catch(PDOException $pe){ 62 echo $pe->getMessage(); 63 }catch(Exception $e){ 64 echo $e->getMessage(); 65 } 66 67 68 //自定义异常对象 69 class MyException extends Exception{ 70 71 }