小编Nei*_*man的帖子

PHP从构造函数重新抛出异常

只是想知道这是否是一种常见做法.基本上构造函数正在调用一些失败的初始化函数.我的想法是,将异常重新抛回到创建对象的位置是有意义的,因为这是发送实际输出的地方.

对于这种情况,这是"最佳做法"吗?或者有更标准的方法来做到这一点?

<?php
  class a {   
        private $x;
        private $y;
        function __construct($filename) {
             try {
                 $this->x = $this->functionThatMightThrowException($filename);
                 $this->y = $this->doSomethingElseThatMightThrow();
             }
             catch(InvalidArgumentException $e) {
                  throw $e;    //is this a good practice or not???
             }
             catch(Exception $e) {
                  throw $e;    //again
             }
         }

         //rest of class definition
    }

  // then somewhere else where the object is created and output is being sent
  $fn = "blah.txt";
  try {
    $a = new a($fn);
  }
  catch (InvalidArgumentException $e) {
     //actually handle here -- …
Run Code Online (Sandbox Code Playgroud)

php oop exception-handling

3
推荐指数
1
解决办法
3740
查看次数

标签 统计

exception-handling ×1

oop ×1

php ×1