[ACCEPTED]-Try Catch cannot work with require_once in PHP?-php
You can do it with include_once
or file_exists
:
try {
if (! @include_once( '/includes/functions.php' )) // @ - to suppress warnings,
// you can also use error_reporting function for the same purpose which may be a better option
throw new Exception ('functions.php does not exist');
// or
if (!file_exists('/includes/functions.php' ))
throw new Exception ('functions.php does not exist');
else
require_once('/includes/functions.php' );
}
catch(Exception $e) {
echo "Message : " . $e->getMessage();
echo "Code : " . $e->getCode();
}
0
As you can read here : (emph mine)
require() is 11 identical to include() except upon failure 10 it will also produce a fatal E_COMPILE_ERROR level error. In other words, it 9 will halt the script
This is about require, but 8 that is equivalent to require_once(). This 7 is not a catchable error.
By the way, you 6 need to enter the absolute path, and I don't 5 think this is right:
require_once( '/includes/functions.php' );
You might want something 4 like this
require_once( './includes/functions.php' );
Or, if you're calling this from 3 a subdir or from a file that is included 2 in different dirs, you might need something 1 like
require_once( '/var/www/yourPath/includes/functions.php' );
This should work, but it is a bit of a hack.
if(!@include_once("path/to/script.php")) {
//Logic here
}
0
More Related questions
We use cookies to improve the performance of the site. By staying on our site, you agree to the terms of use of cookies.