I would reserve die() only for the development process when you want to use it more or less like a breakpoint to output debug data. But the final code probably should not have any, and rather should have more "graceful" ways of handling errors. For instance, if a query fails, it would probably be better to log the debug info and then output some user-friendly error message, e.g.:
$result = mysql_query($query);
if($result == false)
{
error_log(mysql_error() . "\n$query");
echo "<p class='error'>Some nice error message here reassuring the user that this bug will be fixed soon></p>\n";
echo "</body></html>\n";
}
And of course you could modularize a lot of this into a user-defined function that you would call instead in such a situation.