code: public function output():string {
  // Buffer will be null before exec is called...
  		if(is_null($this->buffer)) {
  			$this->exec();
  		}
  
  		curl_close($this->ch);
  
  // ...But will always be a string after exec is called, even if empty.
  		if(strlen($this->buffer) === 0) {
  			throw new NoOutputException();
  		}
  
  		return $this->buffer;
  	}
docs: Return string containing last exec call's output
  @throws NoOutputException