[PHP-CVS] [php-src] master: ext/xmlreader: applied fixers to improve test robustness (#23035)

[email protected] (NickSdot via GitHub)
Newsgroups php.cvs
Message-ID <[email protected]>
Author: NickSdot (NickSdot)
Committer: GitHub (web-flow)
Pusher: Girgias
Date: 2026-08-22T14:08:25+01:00

Commit: https://github.com/php/php-src/commit/6ee03f89c3417bb53dc8a9de23744c6201f35548
Raw diff: https://github.com/php/php-src/commit/6ee03f89c3417bb53dc8a9de23744c6201f35548.diff

ext/xmlreader: applied fixers to improve test robustness (#23035)

Changed paths:
  M  ext/xmlreader/tests/001.phpt
  M  ext/xmlreader/tests/002.phpt
  M  ext/xmlreader/tests/003-get-errors.phpt
  M  ext/xmlreader/tests/003-move-errors.phpt
  M  ext/xmlreader/tests/003.phpt
  M  ext/xmlreader/tests/007.phpt
  M  ext/xmlreader/tests/014.phpt
  M  ext/xmlreader/tests/015-get-errors.phpt
  M  ext/xmlreader/tests/015-move-errors.phpt
  M  ext/xmlreader/tests/bug73246.phpt
  M  ext/xmlreader/tests/bug81521.phpt
  M  ext/xmlreader/tests/expand_error.phpt
  M  ext/xmlreader/tests/fromStream_custom_constructor.phpt
  M  ext/xmlreader/tests/fromStream_custom_constructor_error.phpt
  M  ext/xmlreader/tests/fromString_custom_constructor.phpt
  M  ext/xmlreader/tests/fromString_custom_constructor_error.phpt
  M  ext/xmlreader/tests/fromUri_custom_constructor_error.phpt
  M  ext/xmlreader/tests/invalid_encoding.phpt
  M  ext/xmlreader/tests/next_basic.phpt
  M  ext/xmlreader/tests/setParserProperty_error.phpt
  M  ext/xmlreader/tests/setSchema_error.phpt
  M  ext/xmlreader/tests/virtual_properties3.phpt


Diff:

diff --git a/ext/xmlreader/tests/001.phpt b/ext/xmlreader/tests/001.phpt
index ab84cd0b3a22..50e3aa97f378 100644
--- a/ext/xmlreader/tests/001.phpt
+++ b/ext/xmlreader/tests/001.phpt
@@ -20,12 +20,12 @@ $reader = new XMLReader();
 
 try {
     $reader->XML($xmlstring);
-} catch (ValueError $exception) {
-    echo $exception->getMessage() . "\n";
+} catch (Throwable $exception) {
+    echo $exception::class, ': ', $exception->getMessage(), "\n";
 }
 
 ?>
 --EXPECT--
 books
 books
-XMLReader::XML(): Argument #1 ($source) must not be empty
+ValueError: XMLReader::XML(): Argument #1 ($source) must not be empty
diff --git a/ext/xmlreader/tests/002.phpt b/ext/xmlreader/tests/002.phpt
index a0f55a2af3b4..5ee80945ddda 100644
--- a/ext/xmlreader/tests/002.phpt
+++ b/ext/xmlreader/tests/002.phpt
@@ -12,8 +12,8 @@ file_put_contents($filename, $xmlstring);
 $reader = new XMLReader();
 try {
     $reader->open('');
-} catch (ValueError $exception) {
-    echo $exception->getMessage() . "\n";
+} catch (Throwable $exception) {
+    echo $exception::class, ': ', $exception->getMessage(), "\n";
 }
 
 $reader = new XMLReader();
@@ -36,6 +36,6 @@ unlink($filename);
 
 ?>
 --EXPECT--
-XMLReader::open(): Argument #1 ($uri) must not be empty
+ValueError: XMLReader::open(): Argument #1 ($uri) must not be empty
 books
 books
diff --git a/ext/xmlreader/tests/003-get-errors.phpt b/ext/xmlreader/tests/003-get-errors.phpt
index 6cb2f20b8d5f..9e5b1c32c7db 100644
--- a/ext/xmlreader/tests/003-get-errors.phpt
+++ b/ext/xmlreader/tests/003-get-errors.phpt
@@ -33,8 +33,8 @@ while ($reader->read()) {
             // Test for call with an empty string argument
             try {
                 $reader->getAttribute('');
-            } catch (ValueError $exception) {
-                echo $exception->getMessage() . "\n";
+            } catch (Throwable $exception) {
+                echo $exception::class, ': ', $exception->getMessage(), "\n";
             }
 
             // Ensure that node pointer has not changed position
@@ -69,7 +69,7 @@ unlink(__DIR__.'/003-get-errors.xml');
 book
 bool(true)
 num: 1
-XMLReader::getAttribute(): Argument #1 ($name) must not be empty
+ValueError: XMLReader::getAttribute(): Argument #1 ($name) must not be empty
 num: 1
 NULL
 num: 1
diff --git a/ext/xmlreader/tests/003-move-errors.phpt b/ext/xmlreader/tests/003-move-errors.phpt
index be36d252c453..a9ef7ed6701f 100644
--- a/ext/xmlreader/tests/003-move-errors.phpt
+++ b/ext/xmlreader/tests/003-move-errors.phpt
@@ -33,8 +33,8 @@ while ($reader->read()) {
             // Test for call with an empty string argument
             try {
                 $reader->moveToAttribute('');
-            } catch (ValueError $exception) {
-                echo $exception->getMessage() . "\n";
+            } catch (Throwable $exception) {
+                echo $exception::class, ': ', $exception->getMessage(), "\n";
             }
 
             // Ensure that node pointer has not changed position
@@ -68,7 +68,7 @@ unlink(__DIR__.'/003-move-errors.xml');
 book
 bool(true)
 num: 1
-XMLReader::moveToAttribute(): Argument #1 ($name) must not be empty
+ValueError: XMLReader::moveToAttribute(): Argument #1 ($name) must not be empty
 num: 1
 bool(false)
 num: 1
diff --git a/ext/xmlreader/tests/003.phpt b/ext/xmlreader/tests/003.phpt
index a581d0dea02d..1ad4c088dd84 100644
--- a/ext/xmlreader/tests/003.phpt
+++ b/ext/xmlreader/tests/003.phpt
@@ -70,8 +70,8 @@ while ($reader->read()) {
             var_dump($reader->moveToAttribute('missing-attribute'));
             try {
                 $reader->moveToAttribute('');
-            } catch (ValueError $exception) {
-                echo $exception->getMessage() . "\n";
+            } catch (Throwable $exception) {
+                echo $exception::class, ': ', $exception->getMessage(), "\n";
             }
         }
     }
@@ -88,4 +88,4 @@ num: 1
 idx: 2
 bool(false)
 bool(false)
-XMLReader::moveToAttribute(): Argument #1 ($name) must not be empty
+ValueError: XMLReader::moveToAttribute(): Argument #1 ($name) must not be empty
diff --git a/ext/xmlreader/tests/007.phpt b/ext/xmlreader/tests/007.phpt
index e9705cc5af66..1cc339e09729 100644
--- a/ext/xmlreader/tests/007.phpt
+++ b/ext/xmlreader/tests/007.phpt
@@ -44,8 +44,8 @@ $reader->XML($xmlstring);
 
 try {
     $reader->setRelaxNGSchema('');
-} catch (ValueError $exception) {
-    echo $exception->getMessage() . "\n";
+} catch (Throwable $exception) {
+    echo $exception::class, ': ', $exception->getMessage(), "\n";
 }
 
 $reader->close();
@@ -53,4 +53,4 @@ $reader->close();
 --EXPECT--
 file relaxNG: ok
 string relaxNG: ok
-XMLReader::setRelaxNGSchema(): Argument #1 ($filename) must not be empty
+ValueError: XMLReader::setRelaxNGSchema(): Argument #1 ($filename) must not be empty
diff --git a/ext/xmlreader/tests/014.phpt b/ext/xmlreader/tests/014.phpt
index 26886ae26e6e..b28e418ffe74 100644
--- a/ext/xmlreader/tests/014.phpt
+++ b/ext/xmlreader/tests/014.phpt
@@ -26,21 +26,21 @@ while ($reader->read()) {
             // Try to set the value of the element from book1 to movie1
             try {
                 $reader->value = 'movie1';
-            } catch (Error $exception) {
-                echo $exception->getMessage() . "\n";
+            } catch (Throwable $exception) {
+                echo $exception::class, ': ', $exception->getMessage(), "\n";
             }
             // Try to set the value of the first "num" attribute from "1" to "num attribute 1"
             $attr = $reader->moveToFirstAttribute();
             try {
                 $reader->value = 'num attribute 1';
-            } catch (Error $exception) {
-                echo $exception->getMessage() . "\n";
+            } catch (Throwable $exception) {
+                echo $exception::class, ': ', $exception->getMessage(), "\n";
             }
             // Try to set the name of the first attribute from "num" to "number"
             try {
                 $reader->name = 'number';
-            } catch (Error $exception) {
-                echo $exception->getMessage() . "\n";
+            } catch (Throwable $exception) {
+                echo $exception::class, ': ', $exception->getMessage(), "\n";
             }
         }
     }
@@ -54,6 +54,6 @@ $reader->close();
 unlink(__DIR__.'/_014.xml');
 ?>
 --EXPECT--
-Cannot modify readonly property XMLReader::$value
-Cannot modify readonly property XMLReader::$value
-Cannot modify readonly property XMLReader::$name
+Error: Cannot modify readonly property XMLReader::$value
+Error: Cannot modify readonly property XMLReader::$value
+Error: Cannot modify readonly property XMLReader::$name
diff --git a/ext/xmlreader/tests/015-get-errors.phpt b/ext/xmlreader/tests/015-get-errors.phpt
index 3cf6134df205..720503909fce 100644
--- a/ext/xmlreader/tests/015-get-errors.phpt
+++ b/ext/xmlreader/tests/015-get-errors.phpt
@@ -28,8 +28,8 @@ while ($reader->read()) {
             // Test for missing namespace argument
             try {
                 $attr = $reader->getAttributeNs('idx', null);
-            } catch (ValueError $exception) {
-                echo $exception->getMessage() . "\n";
+            } catch (Throwable $exception) {
+                echo $exception::class, ': ', $exception->getMessage(), "\n";
             }
 
             echo $reader->name . ": ";
@@ -47,5 +47,5 @@ unlink(__DIR__.'/015-get-errors.xml');
 ?>
 --EXPECTF--
 Deprecated: XMLReader::getAttributeNs(): Passing null to parameter #2 ($namespace) of type string is deprecated in %s on line %d
-XMLReader::getAttributeNs(): Argument #2 ($namespace) must not be empty
+ValueError: XMLReader::getAttributeNs(): Argument #2 ($namespace) must not be empty
 ns1:num: 1
diff --git a/ext/xmlreader/tests/015-move-errors.phpt b/ext/xmlreader/tests/015-move-errors.phpt
index d885c5a6fe97..06bb9c2f086b 100644
--- a/ext/xmlreader/tests/015-move-errors.phpt
+++ b/ext/xmlreader/tests/015-move-errors.phpt
@@ -26,8 +26,8 @@ while ($reader->read()) {
             // Test for missing namespace argument
             try {
                 $reader->moveToAttributeNs('idx', null);
-            } catch (ValueError $exception) {
-                echo $exception->getMessage() . "\n";
+            } catch (Throwable $exception) {
+                echo $exception::class, ': ', $exception->getMessage(), "\n";
             }
         }
     }
@@ -42,4 +42,4 @@ unlink(__DIR__.'/015-move-errors.xml');
 ?>
 --EXPECTF--
 Deprecated: XMLReader::moveToAttributeNs(): Passing null to parameter #2 ($namespace) of type string is deprecated in %s on line %d
-XMLReader::moveToAttributeNs(): Argument #2 ($namespace) must not be empty
+ValueError: XMLReader::moveToAttributeNs(): Argument #2 ($namespace) must not be empty
diff --git a/ext/xmlreader/tests/bug73246.phpt b/ext/xmlreader/tests/bug73246.phpt
index f20c16045386..95ba538506a9 100644
--- a/ext/xmlreader/tests/bug73246.phpt
+++ b/ext/xmlreader/tests/bug73246.phpt
@@ -7,21 +7,21 @@ xmlreader
 $reader = new XMLReader();
 try {
     $reader->open(__FILE__, "UTF\0-8");
-} catch (ValueError $e) {
-    echo $e->getMessage(), "\n";
+} catch (Throwable $e) {
+    echo $e::class, ': ', $e->getMessage(), "\n";
 }
 try {
     $reader->XML('<?xml version="1.0"?><root/>', "UTF\0-8");
-} catch (ValueError $e) {
-    echo $e->getMessage(), "\n";
+} catch (Throwable $e) {
+    echo $e::class, ': ', $e->getMessage(), "\n";
 }
 try {
     XMLReader::fromStream(fopen('php://memory', 'r'), encoding: "UTF\0-8");
-} catch (ValueError $e) {
-    echo $e->getMessage(), "\n";
+} catch (Throwable $e) {
+    echo $e::class, ': ', $e->getMessage(), "\n";
 }
 ?>
 --EXPECT--
-XMLReader::open(): Argument #2 ($encoding) must not contain any null bytes
-XMLReader::XML(): Argument #2 ($encoding) must not contain any null bytes
-XMLReader::fromStream(): Argument #2 ($encoding) must not contain any null bytes
+ValueError: XMLReader::open(): Argument #2 ($encoding) must not contain any null bytes
+ValueError: XMLReader::XML(): Argument #2 ($encoding) must not contain any null bytes
+ValueError: XMLReader::fromStream(): Argument #2 ($encoding) must not contain any null bytes
diff --git a/ext/xmlreader/tests/bug81521.phpt b/ext/xmlreader/tests/bug81521.phpt
index 2789a16e21bb..d1547e8d2d26 100644
--- a/ext/xmlreader/tests/bug81521.phpt
+++ b/ext/xmlreader/tests/bug81521.phpt
@@ -7,15 +7,15 @@ xmlreader
 $reader = new XMLReader();
 try {
     var_dump($reader->setParserProperty(XMLReader::LOADDTD, 1));
-} catch (Error $e) {
-    echo $e->getMessage(), "\n";
+} catch (Throwable $e) {
+    echo $e::class, ': ', $e->getMessage(), "\n";
 }
 try {
     var_dump($reader->getParserProperty(XMLReader::LOADDTD));
-} catch (Error $e) {
-    echo $e->getMessage(), "\n";
+} catch (Throwable $e) {
+    echo $e::class, ': ', $e->getMessage(), "\n";
 }
 ?>
 --EXPECT--
-Cannot access parser properties before loading data
-Cannot access parser properties before loading data
+Error: Cannot access parser properties before loading data
+Error: Cannot access parser properties before loading data
diff --git a/ext/xmlreader/tests/expand_error.phpt b/ext/xmlreader/tests/expand_error.phpt
index 1eba483733a2..210ee30356a7 100644
--- a/ext/xmlreader/tests/expand_error.phpt
+++ b/ext/xmlreader/tests/expand_error.phpt
@@ -17,8 +17,8 @@ $reader = new XMLReader();
 
 try {
     $reader->expand();
-} catch (Error $exception) {
-    echo $exception->getMessage() . "\n";
+} catch (Throwable $exception) {
+    echo $exception::class, ': ', $exception->getMessage(), "\n";
 }
 
 $reader->close();
@@ -29,7 +29,7 @@ var_dump($reader->expand());
 $reader->close();
 ?>
 --EXPECTF--
-Data must be loaded before expanding
+Error: Data must be loaded before expanding
 
 Warning: XMLReader::expand(): An Error Occurred while expanding in %s on line %d
 bool(false)
diff --git a/ext/xmlreader/tests/fromStream_custom_constructor.phpt b/ext/xmlreader/tests/fromStream_custom_constructor.phpt
index 3ec370274ad3..2519c6b3349b 100644
--- a/ext/xmlreader/tests/fromStream_custom_constructor.phpt
+++ b/ext/xmlreader/tests/fromStream_custom_constructor.phpt
@@ -20,8 +20,8 @@ fseek($h, 0);
 $reader = CustomXMLReader::fromStream($h, encoding: "UTF-8");
 try {
     var_dump($reader);
-} catch (Error $e) {
-    echo $e->getMessage(), "\n";
+} catch (Throwable $e) {
+    echo $e::class, ': ', $e->getMessage(), "\n";
 }
 var_dump($reader->read());
 var_dump($reader->nodeType);
@@ -60,6 +60,6 @@ object(CustomXMLReader)#%d (14) {
   ["xmlLang"]=>
   string(0) ""
 }
-Failed to read property because no XML data has been read yet
+Error: Failed to read property because no XML data has been read yet
 bool(true)
 int(1)
diff --git a/ext/xmlreader/tests/fromStream_custom_constructor_error.phpt b/ext/xmlreader/tests/fromStream_custom_constructor_error.phpt
index 60e65fa92117..e5d04efaaeef 100644
--- a/ext/xmlreader/tests/fromStream_custom_constructor_error.phpt
+++ b/ext/xmlreader/tests/fromStream_custom_constructor_error.phpt
@@ -17,10 +17,10 @@ fseek($h, 0);
 try {
     CustomXMLReader::fromStream($h, encoding: "UTF-8");
 } catch (Throwable $e) {
-    echo $e->getMessage(), "\n";
+    echo $e::class, ': ', $e->getMessage(), "\n";
 }
 
 fclose($h);
 ?>
 --EXPECT--
-nope
+Error: nope
diff --git a/ext/xmlreader/tests/fromString_custom_constructor.phpt b/ext/xmlreader/tests/fromString_custom_constructor.phpt
index 4299544613d4..9eddbb3061e8 100644
--- a/ext/xmlreader/tests/fromString_custom_constructor.phpt
+++ b/ext/xmlreader/tests/fromString_custom_constructor.phpt
@@ -16,8 +16,8 @@ class CustomXMLReader extends XMLReader {
 $reader = CustomXMLReader::fromString("<root/>");
 try {
     var_dump($reader);
-} catch (Error $e) {
-    echo $e->getMessage(), "\n";
+} catch (Throwable $e) {
+    echo $e::class, ': ', $e->getMessage(), "\n";
 }
 var_dump($reader->read());
 var_dump($reader->nodeType);
@@ -54,6 +54,6 @@ object(CustomXMLReader)#%d (14) {
   ["xmlLang"]=>
   string(0) ""
 }
-Failed to read property because no XML data has been read yet
+Error: Failed to read property because no XML data has been read yet
 bool(true)
 int(1)
diff --git a/ext/xmlreader/tests/fromString_custom_constructor_error.phpt b/ext/xmlreader/tests/fromString_custom_constructor_error.phpt
index 9bcffddba70d..0db74a843732 100644
--- a/ext/xmlreader/tests/fromString_custom_constructor_error.phpt
+++ b/ext/xmlreader/tests/fromString_custom_constructor_error.phpt
@@ -13,8 +13,8 @@ class CustomXMLReader extends XMLReader {
 try {
     CustomXMLReader::fromString("<root/>");
 } catch (Throwable $e) {
-    echo $e->getMessage(), "\n";
+    echo $e::class, ': ', $e->getMessage(), "\n";
 }
 ?>
 --EXPECT--
-nope
+Error: nope
diff --git a/ext/xmlreader/tests/fromUri_custom_constructor_error.phpt b/ext/xmlreader/tests/fromUri_custom_constructor_error.phpt
index ad36c1e0c22f..9aa7ffa02d99 100644
--- a/ext/xmlreader/tests/fromUri_custom_constructor_error.phpt
+++ b/ext/xmlreader/tests/fromUri_custom_constructor_error.phpt
@@ -13,7 +13,7 @@ class CustomXMLReader extends XMLReader {
 try {
     CustomXMLReader::fromUri("nonexistent");
 } catch (Throwable $e) {
-    echo $e->getMessage(), "\n";
+    echo $e::class, ': ', $e->getMessage(), "\n";
 }
 
 $filename = __DIR__ . '/_fromUri_custom_constructor_error.xml';
@@ -24,12 +24,12 @@ file_put_contents($filename, $xmlstring);
 try {
     CustomXMLReader::fromUri($filename);
 } catch (Throwable $e) {
-    echo $e->getMessage(), "\n";
+    echo $e::class, ': ', $e->getMessage(), "\n";
 }
 ?>
 --EXPECT--
-Unable to open source data
-nope
+Error: Unable to open source data
+Error: nope
 --CLEAN--
 <?php
 @unlink(__DIR__ . '/_fromUri_custom_constructor_error.xml');
diff --git a/ext/xmlreader/tests/invalid_encoding.phpt b/ext/xmlreader/tests/invalid_encoding.phpt
index c3918855199e..62b681f10072 100644
--- a/ext/xmlreader/tests/invalid_encoding.phpt
+++ b/ext/xmlreader/tests/invalid_encoding.phpt
@@ -7,25 +7,25 @@ xmlreader
 $reader = new XMLReader();
 try {
     $reader->open(__FILE__, "does not exist");
-} catch (ValueError $e) {
-    echo $e->getMessage(), "\n";
+} catch (Throwable $e) {
+    echo $e::class, ': ', $e->getMessage(), "\n";
 }
 
 $h = fopen("php://memory", "w+");
 try {
     XMLReader::fromStream($h, encoding: "does not exist");
-} catch (ValueError $e) {
-    echo $e->getMessage(), "\n";
+} catch (Throwable $e) {
+    echo $e::class, ': ', $e->getMessage(), "\n";
 }
 fclose($h);
 
 try {
     $reader->XML('<?xml version="1.0"?><root/>', "does not exist");
-} catch (ValueError $e) {
-    echo $e->getMessage(), "\n";
+} catch (Throwable $e) {
+    echo $e::class, ': ', $e->getMessage(), "\n";
 }
 ?>
 --EXPECT--
-XMLReader::open(): Argument #2 ($encoding) must be a valid character encoding
-XMLReader::fromStream(): Argument #2 ($encoding) must be a valid character encoding
-XMLReader::XML(): Argument #2 ($encoding) must be a valid character encoding
+ValueError: XMLReader::open(): Argument #2 ($encoding) must be a valid character encoding
+ValueError: XMLReader::fromStream(): Argument #2 ($encoding) must be a valid character encoding
+ValueError: XMLReader::XML(): Argument #2 ($encoding) must be a valid character encoding
diff --git a/ext/xmlreader/tests/next_basic.phpt b/ext/xmlreader/tests/next_basic.phpt
index 0cf907bcd4eb..891acc9c4fec 100644
--- a/ext/xmlreader/tests/next_basic.phpt
+++ b/ext/xmlreader/tests/next_basic.phpt
@@ -12,14 +12,14 @@ $reader = new XMLReader();
 
 try {
     $reader->read();
-} catch (Error $exception) {
-    echo $exception->getMessage() . "\n";
+} catch (Throwable $exception) {
+    echo $exception::class, ': ', $exception->getMessage(), "\n";
 }
 
 try {
     $reader->next();
-} catch (Error $exception) {
-    echo $exception->getMessage() . "\n";
+} catch (Throwable $exception) {
+    echo $exception::class, ': ', $exception->getMessage(), "\n";
 }
 
 $reader->close();
@@ -40,8 +40,8 @@ $reader->close();
 
 ?>
 --EXPECT--
-Data must be loaded before reading
-Data must be loaded before reading
+Error: Data must be loaded before reading
+Error: Data must be loaded before reading
 node1
 bool(true)
 node3
diff --git a/ext/xmlreader/tests/setParserProperty_error.phpt b/ext/xmlreader/tests/setParserProperty_error.phpt
index 292745751e7f..44e26223a44f 100644
--- a/ext/xmlreader/tests/setParserProperty_error.phpt
+++ b/ext/xmlreader/tests/setParserProperty_error.phpt
@@ -12,10 +12,10 @@ $reader = new XMLReader();
 $reader->XML($xml);
 try {
     $reader->setParserProperty(-1, true);
-} catch (ValueError $exception) {
-    echo $exception->getMessage() . "\n";
+} catch (Throwable $exception) {
+    echo $exception::class, ': ', $exception->getMessage(), "\n";
 }
 $reader->close();
 ?>
 --EXPECT--
-XMLReader::setParserProperty(): Argument #1 ($property) must be a valid parser property
+ValueError: XMLReader::setParserProperty(): Argument #1 ($property) must be a valid parser property
diff --git a/ext/xmlreader/tests/setSchema_error.phpt b/ext/xmlreader/tests/setSchema_error.phpt
index a586c38f5532..10a1f301530c 100644
--- a/ext/xmlreader/tests/setSchema_error.phpt
+++ b/ext/xmlreader/tests/setSchema_error.phpt
@@ -8,24 +8,24 @@ xmlreader
 $reader = new XMLReader();
 try {
     $reader->setSchema('');
-} catch (ValueError $exception) {
-    echo $exception->getMessage() . "\n";
+} catch (Throwable $exception) {
+    echo $exception::class, ': ', $exception->getMessage(), "\n";
 }
 $reader->close();
 
 $reader = new XMLReader();
 try {
     $reader->setSchema('schema-missing-file.xsd');
-} catch (Error $exception) {
-    echo $exception->getMessage() . "\n";
+} catch (Throwable $exception) {
+    echo $exception::class, ': ', $exception->getMessage(), "\n";
 }
 $reader->close();
 
 $reader = new XMLReader();
 try {
     $reader->setSchema('schema-empty.xsd');
-} catch (Error $exception) {
-    echo $exception->getMessage() . "\n";
+} catch (Throwable $exception) {
+    echo $exception::class, ': ', $exception->getMessage(), "\n";
 }
 
 $reader = new XMLReader();
@@ -37,7 +37,7 @@ var_dump(@$reader->setSchema('schema-bad.xsd'));
 $reader->close();
 ?>
 --EXPECT--
-XMLReader::setSchema(): Argument #1 ($filename) must not be empty
-Schema must be set prior to reading
-Schema must be set prior to reading
+ValueError: XMLReader::setSchema(): Argument #1 ($filename) must not be empty
+Error: Schema must be set prior to reading
+Error: Schema must be set prior to reading
 bool(false)
diff --git a/ext/xmlreader/tests/virtual_properties3.phpt b/ext/xmlreader/tests/virtual_properties3.phpt
index ad016c4db764..c4f6ce226eb7 100644
--- a/ext/xmlreader/tests/virtual_properties3.phpt
+++ b/ext/xmlreader/tests/virtual_properties3.phpt
@@ -14,32 +14,32 @@ $reader = new MyXMLReader();
 
 try {
     unset($reader->attributeCount);
-} catch (Error $e) {
-    echo $e->getMessage() . "\n";
+} catch (Throwable $e) {
+    echo $e::class, ': ', $e->getMessage(), "\n";
 }
 
 try {
     unset($reader->baseURI);
-} catch (Error $e) {
-    echo $e->getMessage() . "\n";
+} catch (Throwable $e) {
+    echo $e::class, ': ', $e->getMessage(), "\n";
 }
 
 try {
     unset($reader->depth);
-} catch (Error $e) {
-    echo $e->getMessage() . "\n";
+} catch (Throwable $e) {
+    echo $e::class, ': ', $e->getMessage(), "\n";
 }
 
 try {
     unset($reader->hasAttributes);
-} catch (Error $e) {
-    echo $e->getMessage() . "\n";
+} catch (Throwable $e) {
+    echo $e::class, ': ', $e->getMessage(), "\n";
 }
 
 try {
     unset($reader->hasValue);
-} catch (Error $e) {
-    echo $e->getMessage() . "\n";
+} catch (Throwable $e) {
+    echo $e::class, ': ', $e->getMessage(), "\n";
 }
 
 unset($reader->x);
@@ -47,9 +47,9 @@ var_dump(isset($reader->x));
 
 ?>
 --EXPECT--
-Cannot unset MyXMLReader::$attributeCount
-Cannot unset MyXMLReader::$baseURI
-Cannot unset MyXMLReader::$depth
-Cannot unset MyXMLReader::$hasAttributes
-Cannot unset MyXMLReader::$hasValue
+Error: Cannot unset MyXMLReader::$attributeCount
+Error: Cannot unset MyXMLReader::$baseURI
+Error: Cannot unset MyXMLReader::$depth
+Error: Cannot unset MyXMLReader::$hasAttributes
+Error: Cannot unset MyXMLReader::$hasValue
 bool(false)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.