01_error.php:
<?php
error_reporting( E_ALL );
ini_set( "display_errors", 0 );
function customError( $errno, $errstr ) {
echo "Fehler: $errstr" . PHP_EOL;
}
set_error_handler( 'customError', E_USER_WARNING );
if (1 !== 2) {
http_response_code( 500 );
trigger_error( '1 !== 2', E_USER_WARNING );
exit();
}
Terminal:
~/tmp$ php -S 127.0.0.1:9000 01_error.php
02_error.mjs:
import fetch from 'node-fetch';
fetch('http://127.0.0.1:9000/')
.then(response => response.text())
.then(data => {
console.log('Success:', data);
})
.catch(error => {
console.error('Error:', error);
});
Zweites Terminal:
~/tmp$ node 02_error.js
Ausgabe:
Success: Fehler: 1 !== 2
Da das 'Success:' vom JS, 'Fehler:' von der PHP-Funktion customError()
hinzugefügt wurde ist bewiesen, dass alles läuft wie vorgesehen.
ABER
Was Du da machst sieht aus, wie „von hinten durch die Brust ins Auge.“ Lese doch mal die Seite zu den Exceptions im Handbuch.