先了解下什么是异常,php5中引入了对错误处理的一个机制,这个机制的作用就是帮助将错误处理代码和你的使用应用要完成的具体工作部分分离出来,这个就称为异常。r
异常的工作原理:r
tryr
r
代码处理程序r
if代码处理发生错误throw
ewExceptio
抛出一个异常使用throw关键字后面是Exceptio
的一个对象r
需要说明的是php5异常不会自动抛出异常r
抛出异常后下面处理程序不再执行r
代码处理程序r
r
catchExceptio
er
r
处理异常r
如:echoExceptio
egetCodeegetMessagei
egetFileo
li
eegetLi
er
r
r
看看抛出的异常类系统是如何定义的r
classExceptio
r
r
protectedmessageU
k
ow
exceptio
r
protectedcode0r
protectedfiler
protectedli
er
r
fu
ctio
__co
structmessage
ullcode0r
r
fi
alfu
ctio
getMessager
fi
alfu
ctio
getCoder
fi
alfu
ctio
getFiler
fi
alfu
ctio
getLi
er
fi
alfu
ctio
getTracer
fi
alfu
ctio
getTraceAsStri
g与getTrace一样,只不过它将格式化为字符串r
r
fu
ctio
__toStri
g需要对象的字符串表示时会自动调用这个方法,也就是一旦有echo或pri
t直接输出Exceptio
实例时就会被调用r
r
r
Exceptio
的属性不能在调用代码中直接访问,而必须使用获取方法获得其属性值,只用messagecode能有用户抛出异常时设置,即给Exceptio
类的构造函数完成。由Exceptio
类可以看出我们完全可以继承Exceptio
类创建我们自己的异常类,在检测错误时不再抛出系统默认的异常对象,而是我们自定义的异常类对象但我们只能继承构造函数、toStri
g方法和Exceptio
的属性。r
r
classmyExceptio
exte
dsExceptio
r
r
fu
ctio
__toStri
gr
r
retur
divclass