Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Edugreenred

A função set_error_handler não captura todos erros

Recommended Posts

"set_error_handler" esta função não captura os tipos de erros como Parse error , Fatal error ... e ai qual a solução /????

 

Por exemplo, se eu der um echo apenas com uma " e ; a função não consegue capturar esse erro...

 

EU queria q se desse pra captura todo tipo de erro tanto de dentro do php como do SQL em tempo de execução, para poder parar a execução do script e redirecionar o usuario para uma pagina com uma mensagem padrão de erro!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

ela nao captura mesmo....ela apenas diz ao seu sistema kual a funcao q vai fazer isso, e essa funcao eh criada por você...ker capturar os erros user error_log ou a classe exception....

Compartilhar este post


Link para o post
Compartilhar em outros sites

ela nao captura mesmo....ela apenas diz ao seu sistema kual a funcao q vai fazer isso, e essa funcao eh criada por você...ker capturar os erros user error_log ou a classe exception....

Igor esta função além dela chamar a função q criarmos ela também passa vários parâmetros e um deles é o tipo de erro q ocorreu durante a execução do script ...e esta função não passa como parametro esse tipo de erro Parse erro e fatal erro .... Estou precisando de uma função q capture todos os erros ..

 

Pelo q eu vi ela só captura error a nível de usuário ......

 

Entendeu ?!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esta função eu tente e não capturou esse tipo de erro , q é error a nível de sistema!!

 

<?php

 

 

print_r(error_get_last());

 

$e = sd";

 

?>

 

Tipo de erro q quero capturar com alguma função e personalizar :

Parse error: syntax error, unexpected '"' in /var/www/JS/tratamento_de_erro.php on line 7

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem alguns comentários no site do PHP que mostram algumas formas (bem gambiarradas) de pegar esses erros... O FATAL por exemplo, pode ser pego assim:

 

<?php
	error_reporting(E_ALL);
	ini_set('display_errors', 0);

	function shutdown(){
		$isError = false;
		if ($error = error_get_last()){
			switch($error['type']){
				case E_ERROR:
				case E_CORE_ERROR:
				case E_COMPILE_ERROR:
				case E_USER_ERROR:
					$isError = true;
					break;
			}
		}

		if ($isError){
			echo "Script execution halted ({$error['message']})";
		} else {
			echo "Script completed";
		}
	}

	register_shutdown_function('shutdown');
?>

Esse aqui é o mais criativo, e o mais bizarro:

 

ini_set('html_errors',false);
ini_set('error_prepend_string','<html><head><META http-equiv="refresh" content="0;URL=/error.php?msg=');
ini_set('error_append_string','"></head></html>');

Ele usa as diretivas INI para formatar a tela de erro... e redireciona essa tela pra uma outra "sem erros", passando a mensagem via GET. Porco, mas funciona.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.