<?php
namespace nur\b;

use Throwable;

class CurlException extends UserException {
  function __construct($ch, ?string $message=null, $code=0, ?Throwable $previous=null) {
    $user_msg = $message;
    if ($message === null) $message = "(unknown error)";
    $tech_msg = 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_msg = implode(", ", $parts);
    }
    parent::__construct([$user_msg, $tech_msg], $code, $previous);
  }
}