أنشئ حسابًا أو سجّل الدخول للانضمام إلى مجتمعك المهني.
i think die() function is best error heanlding function in php
There are a lot of ways that you can deal with this and frankly none of them is intrinsically 'right'.
You will have to decide for yourself, which method is more 'comfortable' for you - it's always a mater of preferences (although there are certain techniques you should avoid and for good reasons).
It will highly depend on how you split your logic, however I tend to enclose all code that can return non-fatal errors inside a function, and use a return value of said function to indicate there was an error.
For fatal errors I tend to use exceptions (with try-catch blocks).
Now just to be clear:
A good example of using function-returns as a way of dealing with non-fatal problems would be a function that is trying to display content of some file on the page when this is not the main objective of the page (for example you would have a function that displays badges, fetched from a text file, on every single page - I know that this is far fetched but bear with me).
function getBadge($file){
$f = fopen($file,'r');
if(!$f){
return null;
}
.. do some processing ..
return $badges;
}
$badges = getBadges('badges.txt');
if(!$badges){
echo "Cannot display badges.";
} else {
echo $badges;
}
.. carry on doing whatever page should be doing ..
In fact, the function fopen itself is an example of this - it will return.Returns a file pointer resource on success, or FALSE on error.
When you have some piece of code that needs to be executed because it's exactly what the user wanted (for example reading all news from database and displaying them to the user), you could use exceptions. Let's take a simple example - a user visited his profile and wanted to see all the messages he's got (let's assume, for now, that they are stored in plain text). You might have a function like:
function getMessages($user){
$messages = array();
$f = fopen("messages_$user.txt","r");
if(!$f){
throw new Exception("Could not read messages!");
}
... do some processing ...
return $messages;
}
And use it like this:
try{
..do some stuff..
$messages = getMessages($_SESSION['user'])); //assuming you store username in $_SESSION
foreach($messages as $msg){
echo $msg."<br/>";
}
} catch(Exception $e){
echo "Sorry, there was an error: ".$e->getMessage();
}
Now this could come in handy, if you had a 'top-level' script that would execute all the other code. That means that, for example, in your index.php you would just have:
try{
.. execute some code, perform some functions ..
} catch(Exception $e){
echo "Sorry, there was an error: ".$e->getMessage();
}
Whatever you do, never use exceptions as a way to check something you can recover from.
Now there is no better way to learn how to deal with errors than to try several things and see what is good for you. You might find the below useful:
Hope this helps :)
I agree with Atif about using die() function, however there is already functions build in PHP that you can use for error handling: Error Handling Functions
You also you can use your own custom function to handle errors, check this sample:
Another article that may help you in that too: Error Handling in PHP