Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:119019 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 4971 invoked from network); 21 Nov 2022 11:34:26 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 21 Nov 2022 11:34:26 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id B3E6A1804F8 for ; Mon, 21 Nov 2022 03:34:25 -0800 (PST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=0.6 required=5.0 tests=BAYES_50,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,HTML_MESSAGE, RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H3,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.2 X-Spam-ASN: AS15169 209.85.128.0/17 X-Spam-Virus: No X-Envelope-From: Received: from mail-pf1-f173.google.com (mail-pf1-f173.google.com [209.85.210.173]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Mon, 21 Nov 2022 03:34:22 -0800 (PST) Received: by mail-pf1-f173.google.com with SMTP id 130so11056495pfu.8 for ; Mon, 21 Nov 2022 03:34:22 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=YMg14YnLUX59Od8qHuNt7jHk9iJYap6FuRidn5PnSHU=; b=AjbYXXUFbxPLxyriP/wH6JH6kDFWz+YYn2R9q6XmNYGJsftLdfw/rdu/Dprr+SE4m6 aERv0YQy9ilcFpZyVrJrQxPf4RBcFHaPdViysD4TWBiyujcgYaRLVv+Q7M6pZybVnIzl mDPL64Ej7iEHNbum3JBXrnanW4t4jZQMLywXXi3XNH3hKrq0JBkgntC1DhXcCYMKneXO G92Shr62eyiJjHtKE01/0eTN/h/Lp2vPEY4A4dxmLLj5tw1bSAZcyi1zu3FK8bKA/N6s PaUViXyTUHS2o5OhURp6w6/Rdv4Zp4TBdlS54YktmboJwNiCu+vzstHVIBeIizJEowFI Fbjg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=YMg14YnLUX59Od8qHuNt7jHk9iJYap6FuRidn5PnSHU=; b=cjpIueD2eizr1ak6Vic1DSkEf07plgEdQGpTJytV2SJ/+Hwy5AHn8NUWHQdFOMxrqR W+s1mN+y+B4UQHNt1Iv4xnB3P4RrvoHquOYtVkav7jSptwWLo+o3FQv9EFxyn9vKzR7G 7kMO+uHVpVmKAbBA6O3xcF8VKO/JANjl2Yft7z8yJBKaT8gjVjnnv384cKrufg+6000P B7hoQJqP/0cf4Jin+x0v60me6kFa/Gxe3koqDs5uOl+VYHT8wmeN/D9EVAOsX6yPX+/0 e4P6+UQj/s2E6jqIRytXPY0GT7aBJKHjHHZ6c1mjGiOF85+4RGsvPy+AxGb2byQa5LCX yP3w== X-Gm-Message-State: ANoB5plhsS2g5SQ/JZg2TGiM/t4AQ+acUtmpHwyg3DZ9f1urU7PV6Ou0 j35c5hQH805rE/C7c7NFs1VQBMhdHjnnL6rFWEO7YOztTyk= X-Google-Smtp-Source: AA0mqf5+Odph6M8VppMB9ikE8280fxusSfGqK1lhnN9m64hq24wriLiPv7mouJujpp509Le9hOm/zsNv2RBsrVPd+24= X-Received: by 2002:aa7:93a9:0:b0:562:d5be:adc8 with SMTP id x9-20020aa793a9000000b00562d5beadc8mr3142118pff.50.1669030461240; Mon, 21 Nov 2022 03:34:21 -0800 (PST) MIME-Version: 1.0 Date: Mon, 21 Nov 2022 12:34:10 +0100 Message-ID: To: PHP Internals List Content-Type: multipart/alternative; boundary="000000000000c2f8b205edf96f8b" Subject: Using less generic exceptions for dates From: mr.vincent.langlet@gmail.com (Vincent Langlet) --000000000000c2f8b205edf96f8b Content-Type: text/plain; charset="UTF-8" Hi, When using json_encode or json_decode with the `JSON_THROW_ON_ERROR` flag, `JsonException` might be thrown. When using `new DateTime('foo')`, a generic `Exception` is thrown. Incidentally, I wonder why it's not an `InvalidArgumentException` (but that could be another debate). But my main point is that I think it would be useful to use a specific exception ``` class DateException extends Exception {} ``` - It allows a specific treatment when catching exceptions - It allows a specific analysis when using static analysis tools like Psalm or PHPStan. In a general way, I would say that PHP class/method should always use scoped Exception instead of generics ones. I know nothing about how php is implemented but I would say introducing DateException shouldn't be too hard and it's BC. What do you think ? --000000000000c2f8b205edf96f8b--