仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 789|回复: 18
打印 上一主题 下一主题

[学习教程] PHP教程之php5异常处置详解

[复制链接]
蒙在股里 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-3 23:53:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
在学习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就行,囧。
若相依 该用户已被删除
5#
发表于 2015-3-6 19:15:17 | 只看该作者
遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。
莫相离 该用户已被删除
6#
发表于 2015-3-6 22:13:58 | 只看该作者
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
7#
发表于 2015-3-11 13:58:36 | 只看该作者
不禁又想起那些说php是草根语言的人,为什么认得差距这么大呢。
分手快乐 该用户已被删除
8#
发表于 2015-3-18 16:38:33 | 只看该作者
再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
透明 该用户已被删除
9#
发表于 2015-3-21 13:14:06 | 只看该作者
最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。
谁可相欹 该用户已被删除
10#
发表于 2015-3-28 01:32:43 | 只看该作者
使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的
愤怒的大鸟 该用户已被删除
11#
发表于 2015-4-6 04:24:33 | 只看该作者
我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。
再见西城 该用户已被删除
12#
发表于 2015-4-6 18:09:04 | 只看该作者
这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己
爱飞 该用户已被删除
13#
发表于 2015-4-7 16:25:23 | 只看该作者
建数据库表的时候,int型要输入长度的,其实是个摆设的输入几位都没影响的,只要大于4就行,囧。
乐观 该用户已被删除
14#
发表于 2015-4-11 01:11:22 | 只看该作者
使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。
小女巫 该用户已被删除
15#
发表于 2015-4-21 21:45:34 | 只看该作者
首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。
若天明 该用户已被删除
16#
发表于 2015-4-29 18:14:24 | 只看该作者
兴趣是最好的老师,百度是最好的词典。
冷月葬花魂 该用户已被删除
17#
发表于 2015-5-1 22:12:42 | 只看该作者
刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。
变相怪杰 该用户已被删除
18#
发表于 2015-5-2 11:37:19 | 只看该作者
遇到出错的时候,我经常把错误信息直接复制到 google的搜索栏,一般情况都是能搜到结果的,不过有时候会搜出来一大片英文的出来,这时候就得过滤一下,吧中文的弄出来,挨着式方法。
再现理想 该用户已被删除
19#
发表于 2015-5-7 14:57:36 | 只看该作者
如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-24 02:59

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表