蒙在股里 发表于 2015-2-3 23:53:53

PHP教程之php5异常处置详解

在学习HTML中我想边学边做是最有效的方式,当然这一方式对于学习PHP同样是最有效的。   1 起首是try,catch

<?php
&#36;path = "D:\\\\in.txt";
try //检测异常
{
file_open(&#36;path);
}
catch(Exception &#36;e) //捕捉异常
{
echo &#36;e->getMessage();
}

function file_open(&#36;path)
{
if(!file_exists(&#36;path)) //假如文件没法找到,抛出异常对象
{
throw new Exception("文件没法找到", 1);
}

if(!fopen(&#36;path, "r")) //假如文件没法翻开,抛出异常对象
{
throw new Exception("文件没法翻开", 2);
}
}
?>
注重用&#36;e->getMessage()输入异常信息.
2 输入异常完全信息

<?php
&#36;path = "D:\\\\in.txt";

try
{
file_open(&#36;path); //测验考试翻开文件
}
catch(Exception &#36;e)
{
echo "异常信息:".&#36;e->getMessage()."\\n"; //前往用户自界说的异常信息
echo "异常代码:".&#36;e->getCode()."\\n"; //前往用户自界说的异常代码
echo "文件名:".&#36;e->getFile()."\\n"; //前往产生异常的PHP法式文件名
echo "异常代码地点行".&#36;e->getLine()."\\n"; //前往产生异常的代码地点行的行号
echo "传递线路:";
print_r(&#36;e->getTrace()); //以数组模式前往跟踪异常每步传递的线路
echo &#36;e->getTraceAsString(); //前往格局化成字符串的getTrace函数信息
}

function file_open(&#36;path)
{
if(!file_exists(&#36;path)) //假如文件不存在,则抛失足误
{
throw new Exception("文件没法找到", 1);
}

if(!fopen(&#36;path, "r"))
{
throw new Exception("文件没法翻开", 2);
}
}
?>


扩大异常,即自界说异常

<?php
class FileExistsException extends Exception{} //用于处置文件不存在异常的类
class FileOpenException extends Exception{} //用于处置文件不成读异常的类

&#36;path = "D:\\\\in.txt";

try
{
file_open(&#36;path);
}
catch(FileExistsException &#36;e) //假如发生FileExistsException异常则提醒用户确认文件地位
{
echo "法式在运转过程当中产生了异常:".&#36;e->getMessage()."\\n";
echo "请确认文件地位。";
}
catch(FileOpenException &#36;e) //假如发生FileOpenException异常则提醒用户确认文件的可读性
{
echo "法式在运转过程当中产生了异常:".&#36;e->getMessage()."\\n";
echo "请确认文件的可读性。";
}
catch(Exception &#36;e)
{
echo "[未知异常]";
echo "异常信息:".&#36;e->getMessage()."\\n"; //前往用户自界说的异常信息
echo "异常代码:".&#36;e->getCode()."\\n"; //前往用户自界说的异常代码
echo "文件名:".&#36;e->getFile()."\\n"; //前往产生异常的PHP法式文件名
echo "异常代码地点行".&#36;e->getLine()."\\n"; //前往产生异常的代码地点行的行号
echo "传递线路:";
print_r(&#36;e->getTrace()); //以数组模式前往跟踪异常每步传递的线路
echo &#36;e->getTraceAsString(); //前往格局化成字符串的getTrace函数信息
}

function file_open(&#36;path)
{
if(!file_exists(&#36;path))
{
throw new FileExistsException("文件没法找到", 1); //抛出FileExistsException异常对象
}

if(!fopen(&#36;path, "r"))
{
throw new FileOpenException("文件没法翻开", 2); //抛出FileOpenException异常对象

}
}
?>
4 重抛异常给下层

<?php
class FileExistsException extends Exception{} //用于处置文件不存在异常的类
class FileOpenException extends Exception{} //用于处置文件不成读异常的类

&#36;path = "D:\\\\in.txt";

try
{
file_open(&#36;path);
}
catch(FileExistsException &#36;e) //假如发生FileExistsException异常则提醒用户确认文件地位
{
echo "法式在运转过程当中产生了异常:".&#36;e->getMessage()."\\n";
echo "请确认文件地位。";
}
catch(FileOpenException &#36;e) //假如发生FileOpenException异常则提醒用户确认文件的可读性
{
echo "法式在运转过程当中产生了异常:".&#36;e->getMessage()."\\n";
echo "请确认文件的可读性。";
}
catch(Exception &#36;e)
{
echo "[未知异常]";
echo "异常信息:".&#36;e->getMessage()."\\n"; //前往用户自界说的异常信息
echo "异常代码:".&#36;e->getCode()."\\n"; //前往用户自界说的异常代码
echo "文件名:".&#36;e->getFile()."\\n"; //前往产生异常的PHP法式文件名
echo "异常代码地点行".&#36;e->getLine()."\\n"; //前往产生异常的代码地点行的行号
echo "传递线路:";
print_r(&#36;e->getTrace()); //以数组模式前往跟踪异常每步传递的线路
echo &#36;e->getTraceAsString(); //前往格局化成字符串的getTrace函数信息
}

function file_open(&#36;path)
{
try
{
if(!file_exists(&#36;path))
{
throw new FileExistsException("文件没法找到", 1);
}

if(!fopen(&#36;path, "r"))
{
throw new FileOpenException("文件没法翻开", 2);
}
}
catch(Exception &#36;e) //捕捉异常
{
echo "file_open函数在运转过程当中呈现异常";
throw &#36;e; //重掷异常
}
}
?>
大部分语言的基础,不是说c有多好,而是c相对起手容易学,让你认为这个是编程语言,

金色的骷髅 发表于 2015-2-4 06:57:01

兴趣是最好的老师,百度是最好的词典。

小魔女 发表于 2015-2-9 03:43:49

Apache不是非得用80或者8080端口的,我刚开始安得时候就是80端口老占用,就用了个 81端口,结果照常,就是输localhost的时候,应该输入为 localhost:81

蒙在股里 发表于 2015-2-20 23:59:34

建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。

若相依 发表于 2015-3-6 19:15:17

遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。

莫相离 发表于 2015-3-6 22:13:58

要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。

仓酷云 发表于 2015-3-11 13:58:36

不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。

分手快乐 发表于 2015-3-18 16:38:33

再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。

透明 发表于 2015-3-21 13:14:06

最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。

谁可相欹 发表于 2015-3-28 01:32:43

使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的

愤怒的大鸟 发表于 2015-4-6 04:24:33

我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。

再见西城 发表于 2015-4-6 18:09:04

这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己

爱飞 发表于 2015-4-7 16:25:23

建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。

乐观 发表于 2015-4-11 01:11:22

使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。

小女巫 发表于 2015-4-21 21:45:34

首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。

若天明 发表于 2015-4-29 18:14:24

兴趣是最好的老师,百度是最好的词典。

冷月葬花魂 发表于 2015-5-1 22:12:42

刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。

变相怪杰 发表于 2015-5-2 11:37:19

遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。

再现理想 发表于 2015-5-7 14:57:36

如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,
页: [1]
查看完整版本: PHP教程之php5异常处置详解