php数据库异常处理 php如何解决异常处理

PHP5中的异常处理详解[1]首先是try catch
〈?php$path = D:\\\\in txt ;try //检测异常{file_open($path);}catch(Exception $e) //捕获异常{echo $e 〉getMessage();}
function file_open($path){if(!file_exists($path)) //如果文件无法找到 抛出异常对象{throw new Exception( 文件无法找到 );}
if(!fopen($path r )) //如果文件无法打开 抛出异常对象{throw new Exception( 文件无法打开 );}}?〉
注意用$e 〉getMessage()输出异常信息
输出异常完整信息
〈?php$path = D:\\\\in txt ;
try{file_open($path); //尝试打开文件}catch(Exception $e){echo 异常信息 $e 〉getMessage() \\n ; //返回用户自定义的异常信息echo 异常代码 $e 〉getCode() \\n ; //返回用户自定义的异常代码echo 文件名 $e 〉getFile() \\n ; //返回发生异常的PHP程序文件名echo 异常代码所在行 $e 〉getLine() \\n ; //返回发生异常的代码所在行的行号echo 传递路线 ;print_r($e 〉getTrace()); //以数组形式返回跟踪异常每一步传递的路线echo $e 〉getTraceAsString(); //返回格式化成字符串的getTrace函数信息}
function file_open($path){if(!file_exists($path)) //如果文件不存在 则抛出错误{throw new Exception( 文件无法找到 );}
if(!fopen($path r )){throw new Exception( 文件无法打开 );}}?〉
3 扩展异常 即自定义异常
〈?phpclass FileExistsException extends Exception{} //用于处理文件不存在异常的类class FileOpenException extends Exception{} //用于处理文件不可读异常的类
$path = D:\\\\in txt ;
try{file_open($path);}catch(FileExistsException $e) //如果产生FileExistsException异常则提示用户确认文件位置{echo 程序在运行过程中发生了异常 $e 〉getMessage() \\n ;echo 请确认文件位置 ;}catch(FileOpenException $e) //如果产生FileOpenException异常则提示用户确认文件的可读性{echo 程序在运行过程中发生了异常 $e 〉getMessage() \\n ;echo 请确认文件的可读性 ;}catch(Exception $e){echo [未知异常] ;echo 异常信息 $e 〉getMessage() \\n ; //返回用户自定义的异常信息echo 异常代码 $e 〉getCode() \\n ; //返回用户自定义的异常代码echo 文件名 $e 〉getFile() \\n ; //返回发生异常的PHP程序文件名echo 异常代码所在行 $e 〉getLine() \\n ; //返回发生异常的代码所在行的行号echo 传递路线 ;print_r($e 〉getTrace()); //以数组形式返回跟踪异常每一步传递的路线echo $e 〉getTraceAsString(); //返回格式化成字符串的getTrace函数信息}
function file_open($path){if(!file_exists($path)){throw new FileExistsException( 文件无法找到 ); //抛出FileExistsException异常对象}
if(!fopen($path r )){throw new FileOpenException( 文件无法打开 ); //抛出FileOpenException异常对象
lishixinzhi/Article/program/PHP/201311/21471
php频繁刷新网页运行一段时间后出现数据库连接错误?这是由于数据库连接数过多导致的,说明之前建立的连接你没有释放 。
看到你的需求是实时获取数据库里面的内容 , 可以考虑使用内存数据库,这样返回的效率高,也会避免过多连接的错误 。
可以使用redis和memcache来解决这个问题 。代码如下 , 记得首先要安装redis,并且要安装php-redis扩展 。
?php
$redis = new Redis();
$redis-connect('127.0.0.1', 6379);//serverip port
$redis-auth('mypassword');//my redis password
$redis -set( "test" , "Hello World");
echo $redis -get( "test");
php 中怎么拦截数据库异常sql语句问题是没有必要拦截的,如果把sql语句输出来让用户看到是件危险的事情,至于数据库或其他异常,可以参考set_error_handler(array('错误处理类', '方法')),然后建立一个自己的错误处理类和方法,自己对错我进行处理,上面的函数也能让php触发错误时自动调用
记得采纳啊

推荐阅读