/**
  * Constructor of the Exception
  * 
  * @param String $optionName - The name of the Option
  * @param string[] $expectedValues - All possible Values
  * @param String $givenValue
  */
 public function __construct($optionName, $expectedValues = array(), $givenValue)
 {
     parent::__construct("Invalid Option {$optionName}. EXPECTED: " . implode(", ", $expectedValues) . " GIVEN: {$givenValue}");
 }
 /**
  * Constructor of the Exception
  *
  * @param String fileName - The name of the file which the stream belongs to.
  */
 public function __construct($fileName)
 {
     parent::__construct("The stream for {$fileName} could not be read.");
 }
 /**
  * Constructor of the Exception
  * 
  * @param String $path - The path which wasn't found
  */
 public function __construct($path)
 {
     parent::__construct("Ths file with the path {$path} wasn't found.");
 }
 /**
  * Constructor of the Exception
  * 
  * @param String $path - The path which wasn't found
  */
 public function __construct($path)
 {
     parent::__construct("Ths file with the path {$path} isn't readable.");
 }