public function __construct($index, $rangeA = null, $rangeB = null, $subcode = 10)
 {
     if ($rangeA !== null && $rangeB !== null) {
         if ($rangeB > $rangeA) {
             $rangeBr = $rangeB - 1;
             $range = " vs [{$rangeA}, {$rangeBr}]";
         } else {
             $range = ' vs empty range';
         }
     } else {
         $range = '';
     }
     parent::__construct("Index is out of range: {$index}{$range}", $subcode);
 }
 public function __construct($message, $subcode = 1)
 {
     parent::__construct($message, $subcode);
 }
 public function __construct($var_name, $subcode = 2)
 {
     parent::__construct('No such html element attribute: ' . $var_name, 2);
 }
 public function __construct($subcode = 3)
 {
     parent::__construct('Attempt to render an empty "select" element', $subcode);
 }
 public function __construct($attribute, $value, $subcode = 7)
 {
     parent::__construct("Value of the \"{$attribute}\" attribute must be unique: \"{$value}\"", $subcode);
 }
 public function __construct($var_name, $subcode = 9)
 {
     parent::__construct('No such tag: ' . $var_name, $subcode);
 }
 public function __construct($render_mode, $subcode = 11)
 {
     parent::__construct("Invalid rendering mode specified: {$render_mode}", $subcode);
 }
 public function __construct($subcode = 4)
 {
     parent::__construct('Attempt to select more than one option in an non-multiple select', $subcode);
 }