1<?php 2 3namespace splitbrain\phpcli; 4 5/** 6 * Class Exception 7 * 8 * The code is used as exit code for the CLI tool. This should probably be extended. Many cases just fall back to the 9 * E_ANY code. 10 * 11 * @author Andreas Gohr <andi@splitbrain.org> 12 * @license MIT 13 */ 14class Exception extends \RuntimeException 15{ 16 const E_ANY = -1; // no error code specified 17 const E_UNKNOWN_OPT = 1; //Unrecognized option 18 const E_OPT_ARG_REQUIRED = 2; //Option requires argument 19 const E_OPT_ARG_DENIED = 3; //Option not allowed argument 20 const E_OPT_ABIGUOUS = 4; //Option abiguous 21 const E_ARG_READ = 5; //Could not read argv 22 23 /** 24 * @param string $message The Exception message to throw. 25 * @param int $code The Exception code 26 * @param \Exception $previous The previous exception used for the exception chaining. 27 */ 28 public function __construct($message = "", $code = 0, \Exception $previous = null) 29 { 30 if (!$code) { 31 $code = self::E_ANY; 32 } 33 parent::__construct($message, $code, $previous); 34 } 35} 36