面向对象第六天----捕获异常

PHP错误处理
1、语法错误
2、运行错误
3、逻辑错误

异常处理
===========================================================
1. PHP的异常处理
  1.1 异常处理
    在正常运行中,出现了“你认为”的错误或异常;
  格式:
  try{

//尝试行为 抛出异常则终止在try中异常以下的代码
    throw new Exception("错误信息");
  ...
    }catch(Exception $e){
      //获取错误信息
  
  }

1.2 系统自带的异常处理类
  请参照PHP手册 Exception 父类

1.3 自定义异常处理类
    自定义类继承系统基类
    自定义方法或属性
1.4 处理多个异常
    原则:自定义子类方法在上,基类获取在下
  try{
    }catch(MyException $e){
      }catch(Exception $e){
    }

1.5 异常
PHP的异常与java异常有区别:PHP的抛出异常是程序员自定义抛出的,并非系统抛出。 其他语言的异常处理更像php的错误处理
需要异常的情况:
    ① 程序员的悲观
    ② 代码的强壮性要求
    ③ 业务需要

2.反射API(了解)
面向对象编程中被赋予了自省的能力,而这个能力就是反射
根据到达地找到出发地和来源。通过对象知道它所属的类、拥有哪些方法
反射指在PHP运行状态中,扩展分析PHP程序, 导出或提取出关于类、方法、属性、参数等的详细信息,包括注释。 这种动态获取信息以及动态调用对象方法的功能称之为反射API

反射API 的使用
ReflectionObject
ReflectionClass
获取对象或类中的属性和方法

作用:
    反射可以用于文档生成。

3. PHP类与对象的相关函数
    class_exists(className) 判断类是否已经定义,会触发__autoload(第二个参数设置为false 不触发 autoload)
    get_class_methods(className/ob) 获取对象或类中所有的共有方法
    get_class_vars(className) 获取类中所有的共有属性
    get_object_vars(ob) 获取对象中所有的共有属性
    get_class(ob) 获取对象的类名
    get_parent_class(ob/className) 获取对象或类的父类
    method_exists(ob/className,funName) 判断类或对象中是否存在该方法
    property_exists(ob/className,varName) 判断类或对象中是否存在该属性
    s_a(ob,className) 等同于instanceof
    get_declared_classes() 返回所有已定义的类(包括系统定义的类)






posted @ 2016-05-18 17:40  隔壁家王叔叔  阅读(154)  评论(0编辑  收藏  举报