Errors: read, reproduce, fix
| Show errors locally | |
| Log instead of display | |
| try and catch | |
| Real cases from this site |
Show errors locally
Enable error display only on a local machine. Set display_errors to 1 and error_reporting to E_ALL.
You will see warnings and notices right in the output.
ini_set("display_errors", "1"); error_reporting(E_ALL); echo "Errors are visible";
Log instead of display
Disable display on production and write to a log instead. Set display_errors to 0 and log_errors to 1.
Inspect the log file after each request to find hidden issues.
ini_set("display_errors", "0"); ini_set("log_errors", "1"); error_log("Something went wrong");
try and catch
Wrap risky calls in a try block. List each failure type in its own catch block.
The program continues after catch instead of stopping.
try { throw new RuntimeException("Demo failure"); } catch (RuntimeException $e) { echo $e->getMessage(); }
Real cases from this site
Real projects fail on bad JSON, missing files and wrong types.
Study the collection
PHP errors: case studies
for step by step fixes. Reproduce each case locally before changing code.
try { $result = json_decode("{broken}", true, 512, JSON_THROW_ON_ERROR); } catch (JsonException $e) { echo $e->getMessage(); }
Next: Classes and objects
Article author: Arthur Isaev