<?php
namespace nur\sery\web\ext;

use nur\sery\UserException;
use Throwable;

class CurlException extends UserException {
  function __construct($ch, ?string $message=null, $code=0, ?Throwable $previous=null) {
    if ($message === null) $message = "(unknown error)";
    $user_message = $message;
    $tech_message = null;
    if ($ch !== null) {
      $parts = [];
      $errno = curl_errno($ch);
      if ($errno != 0) $parts[] = "errno: $errno";
      $error = curl_error($ch);
      if ($error != "") $parts[] = "error: $error";
      if ($parts) $tech_message = implode(", ", $parts);
    }
    parent::__construct($user_message, $tech_message, $code, $previous);
  }
}
