当前位置: 首页 > news >正文

网站建设开发方式包括一l丫青岛做网站报价

网站建设开发方式包括一l丫,青岛做网站报价,最新室内设计效果图,百度分享 wordpress引出 如果你调一个类#xff0c;调用时数据验证时报了个错#xff0c;你会以什么方式返回 数组#xff0c;布尔值#xff1f; 数组这个可以带错误原因回来#xff0c;那布尔值呢#xff1f; 返回了个 false, 报错时把错误放在类变量里#xff1f;还是专门用一个获取错误… 引出 如果你调一个类调用时数据验证时报了个错你会以什么方式返回 数组布尔值 数组这个可以带错误原因回来那布尔值呢 返回了个 false, 报错时把错误放在类变量里还是专门用一个获取错误的方法进行获取 上面说的情况是代码完全没有问题的情况。那如果是一些第三方的工具包你又怎么知道他里面的执行会不会导致整个系统崩溃。 你说本地运行是没问题的环境这种东西不好说。 所以我们就用到了 异常 这个东西 下面是我们需要了解的问题 什么时候抛异常怎么接异常异常要怎么处理他的使用场景又是什么 基础知识 基础操作try ... catch()throw 错误级别致命错误 E_ERROR语法错误 E_PARSE警告错误 E_WARNING通知错误 E_NOTICE php异常处理类预定义异常 * ErrorException (extends Exception) SPL异常类 * LogicException (extends Exception) // 表示程序逻辑中的错误的异常。这种异常应该直接在代码中的修复* BadFunctionCallException // 回调调用未定义的函数或缺少一些参数时会抛出该异常* BadMethodCallException // 回调方法是一个未定义的方法或缺失一些参数时会抛出该异常* DomainException // 值不遵守定义的有效数据域时会抛出该异常* InvalidArgumentException // 参数不是预期类型时会抛出该异常* LengthException // 长度无效时会抛出该异常* OutOfRangeException // 请求非法索引时引发的异常这应该在编译时就检测到的错误* RuntimeException (extends Exception) // 在运行时发生的错误会抛出该异常* OutOfBoundsException // 值不是有效键时会抛出该异常这表示在编译时无法检测到的错误* OverflowException // 在向完整容器中添加元素时引发的异常* RangeException // 在程序执行期间为指示范围错误而引发的异常。通常这意味着除了/overflow以外还有一个算术错误。这是运行时的DomainException版本* UnderflowException // 在空容器上执行无效操作(如删除元素)时引发的异常* UnexpectedValueException // 值与一组值不匹配时会抛出该异常。通常当一个函数调用另一个函数并期望返回值为某种类型或值(不包括算术或缓冲区相关错误)时就会发生这种情况 异常处理相关函数 error_reporting // 设置报告的错误级别register_shutdown_function // 注册一个会在php中止时执行的函数set_error_handler // 设置用户自定义的错误处理函数set_exception_handler // 设置用户自定义的异常处理函数error_get_last // 获取最后发生的错误 使用场景 系统主要抓的是无法预测的错误统一返回没有使用 try...catch 接收的异常直接跳进设置的方法中 ?phpnamespace App\Exception;use Exception;/*** 异常句柄入口类*/ class Handler {// 默认错误处理public static function errorHandler($errno, $errstr, $errfile , $errline 0){}// 默认异常处理public static function exceptionHandler($ex){try {throw $ex;} catch (Order $e) {echo 订单异常;} catch (Goods $e) {echo 商品异常;} catch (User $e) {echo 用户异常;} catch (Exception $e) {echo 其他异常;}}// 致命错误处理public static function fatalErrorHandler(){if ($e error_get_last()) {print_r($e);}} }/*** 订单异常*/ class Order extends Exception { }/*** 商品异常*/ class Goods extends Exception { }/*** 用户异常*/ class User extends Exception { }?php // 入口文件中error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);register_shutdown_function(array(App\\Exception\\Handler, fatalErrorHandler));set_error_handler(array(App\\Exception\\Handler, errorHandler));set_exception_handler(array(App\\Exception\\Handler, exceptionHandler)); 工具定义自定义的异常一有错误直接抛出。使用工具的程序只需通过 Exception 接收异常即可, 所有异常都通过这个进行处理的 ?phpnamespace Testlin\Db\Exception;use Exception;interface ExceptionInterface { }class Db extends Exception implements ExceptionInterface { }class Pdo extends Db { } ??php namespace Testlin\Db;use Exception; use Testlin\Db\Exception\Pdo;class Db {protected $db;public function __construct($config){$this-db new PDO($config);if ($this-db false) {throw new Pdo(连接失败);}} }? 文章例子 工具包例子项目例子FQA 1、为什么要定自定义异常类, 系统不是已经给了很多选择而且很多 composer 包里都只是继承一下。 答其实自定义异常是为了用区分异常颗粒度的比如 我定了 订单异常商品异常用户异常 类但是 订单里的异常多种多样比如订单支付异常订单生成异常。 * RuntimeException (extends Exception)* Order* Paymen* Created* Goods* User* Withdraw当项目抛出异常时 ?phptry {$param []; // 操作那个方法时传的参数throw App\Exception\Order\Payment::forParam(执行xxx操作异常, $param);} catch (Exception $e) {// 相关操作get_class($e); // 当前异常类 App\Exception\Order\Payment} 通过异常类名我们可以知道是订单支付异常。这里可以代替错误号而且更清晰明了 2、为什么有一些 composer 包里的自定义异常有的有很多方法。有什么用处吗 作用1格式化异常 比如抛出的异常提示是 idxx 的用户不存在我们会有以下两种写法 ?php// 普通操作 $id 1; throw new Payment(id{$id} 的用户不存在);// 格式化异常 use App\Exception\Order;class Payment extends Order {public static function forId($id){return new self(sprintf(id%s 的用户不存在,$id));} }$id 1; throw Payment::forId($id);作用2组件级别的异常 ?phpnamespace Testlin\Db\Exception;use Exception;interface ExceptionInterface { }class Mysqli extends Exception impements ExceptionInterface { }class Pdo extends Exception impements ExceptionInterface { }try {throw new Testlin\Db\Exception\Mysqli(sql 执行失败); } catch (Testlin\Db\Exception\ExceptionInterface $e) {// 这里取得的异常只会是继承这个接口的异常// 可以只针对这个工具包进行处理 }
http://www.yutouwan.com/news/215509/

相关文章:

  • 网站开发 工资高吗如何弄自己的网站
  • 网站推广应注意哪些事项自己创建小程序
  • 各大网站名称wordpress更新的文章编辑器不好用
  • 梧州专业网站推广网站开发工资一般多少
  • 招商网站如何做推广小程序的推广方法
  • 购物网站开发和运行环境汕头有几个区
  • 东莞一站式网站推广运营wordpress添加媒体
  • 互动网站建设公司网站建设代码标签大全
  • 网站综合建设笔记网站开发报价文件
  • iis7 静态网站网页制作面试自我介绍
  • 长沙网站建设icp备推广引流渠道
  • wordpress king新乡seo公司
  • 如何把做的网站与域名连接不上瑞金网站建设光龙
  • 服务器做网站空间东莞人才网最新招聘信息
  • 网站推广优势做i网站
  • 网站建设优化教程手机优化怎么得100分
  • 网站分析 工具注册安全工程师需要什么条件
  • 接做效果图网站怎么生成域名做网站
  • 网站上传权限郑州知名做网站公司
  • 网站流量一直做不起来网站开发背景知识
  • asp做网站常州网站建设公司服务
  • 招聘网站大全58同城简述常用的网络营销方法
  • 做衬衫的网站个人备案可以做企业网站吗
  • 做网站旅游销售进一步优化供给推动消费平稳增长
  • 网站建设规划结构wordpress直接购买
  • ps怎么做网站大连网站建设大连
  • 虚拟币网站开发大连高新园区在哪
  • 鲜花网站建设规划网上下载的免费网站模板怎么用
  • 仙桃网站设计公司北京网约车
  • 广安商城网站建设做母婴的网站有哪些