Como aplicar, experimente o bloco de captura em php

Como aplicar, experimente o bloco de captura em php
O manuseio de exceção é uma característica muito importante de qualquer programação orientada a objetos. Quando qualquer erro lógico ou do sistema chega após a execução de qualquer código, ele é chamado de exceção e a técnica pela qual o codificador pode lidar corretamente com os erros é chamado de manuseio de exceção. É usado para evitar resultados inesperados dos usuários finais, melhorar a segurança do aplicativo e lidar com erros predefinidos com eficiência. Este recurso é suportado pelo PHP da versão 5. Tentar e pegar O bloco é usado para lidar com exceções na programação orientada a objetos. Tentar O bloco é usado para lançar a exceção se ocorrer algum erro e pegar ou finalmente O bloco é usado para lidar com a exceção no PHP. Este tutorial ajudará você a aprender o uso do manuseio de exceção da programação orientada a objetos usando o PHP.

Experimente o bloco

PHP tem uma classe base chamada Exceção e exceções são jogadas de tentar Bloco para Exceção ou subclasse de Exceção aula.

Sintaxe:

tentar

//Código principal

Catch bloco

Pegar O bloco aparece depois tentar bloquear. PHP suporta múltiplas pegar blocos para lidar com várias exceções. Quando qualquer exceção joga, o PHP tenta combinar com o primeiro bloco de captura, o segundo bloco de captura, se não corresponde ao primeiro, e assim por diante.

Sintaxe:

tentar

//Código principal

Catch (Exceção $ E)

// Código de manuseio de erros

Finalmente bloqueie

Finalmente, o bloco pode ser usado após ou em vez de capturar bloco no PHP e este bloco é executado ao tentar o bloco saídas. Qualquer código normal ou de término pode ser adicionado a este bloco depois de executar o código de tentativa de bloco.

Sintaxe:

tentar

//Código principal

Catch (Exceção $ E)

// Código de manuseio de erros

finalmente

// Código normal

Exemplo 1: Usando o bloco Try-capath para obter um erro simples

O exemplo a seguir mostra o uso de um bloco de tentativa para uma única exceção. Crie um arquivo php com o seguinte script. O valor do parâmetro de consulta 'num'foi lido e verificado no bloco de tentativa. Se o valor estiver abaixo de 10, o bloco de tentativa lançará uma exceção no bloco de captura. Caso contrário, o valor será impresso. Catch Block pegará a exceção e imprimirá a mensagem Enviar do bloco de tentativa. Se nenhum parâmetro de consulta passar, o valor padrão será 100.

// teste O número é 10 ou mais
tentar

if (isset ($ _ get ['num'])))
// Leia o valor do URL
$ n = $ _get ['num'];
outro
// Defina o valor padrão
$ n = 100;
se ($ n <10)

// Se a exceção lança, o bloco de captura exibirá a seguinte mensagem de erro
Jogue nova exceção ("

O número deve ser 10 ou mais.

");

outro

// executa esta linha se nenhum erro aparecer.
eco "

O número é $ n

";


// Pegue a exceção do Block Try
Catch (Exceção $ E)

// Imprima a mensagem de erro passada do bloco de tentativa
echo $ e-> getMessage ();

?>

Saída:

Execute o script sem qualquer parâmetro de consulta.

http: // localhost/phpcode/trycatch1.php

Execute o script com um valor de parâmetro de consulta que é menor que 10.

http: // localhost/phpcode/trycatch1.php?num = 5

Execute o script com um valor de parâmetro de consulta que é maior que 10.

http: // localhost/phpcode/trycatch1.php?num = 15

Exemplo 2: Lidando com vários erros herdando a classe de exceção

Crie um arquivo php com o seguinte script para lidar com as múltiplas exceções usando vários blocos de captura. Uma subclasse chamada 'myException'foi criado estendendo a classe base'Exceção'Para lidar com o'Erro de URL inválido'. A classe base Exceção tem sido usado para lidar 'Erro de URL vazio'.

// Declare uma subclasse myException, estendendo a classe de exceção
classe myException estende a exceção
// Defina a mensagem de erro no construtor
função pública __construct ($ message = null, $ code = 0)
$ this-> message = $ message;

// Exibir a mensagem de erro
função pública display_error ()

eco '

'.$ this-> mensagem.'Não é um endereço de URL válido

';


tentar

// Defina o endereço URL usando o parâmetro de consulta ou o valor padrão
$ url = isset ($ _ get ['url'])?$ _Get ['url']: "https: // linuxhint.com ";
// Verifique se o endereço da URL está vazio ou não
if ($ url == "")
// Se o endereço da URL estiver vazio, a seguinte mensagem de erro será lançada
Jogue nova exceção ("

O endereço da URL está vazio.

");

// Verifique se os endereços de URL são válidos ou inválidos
elseif (!filtro_var ($ url, filtro_validado_url))
// Se o endereço URL for inválido, uma exceção jogará com endereço URL inválido
lançar uma nova myException ($ url);

outro

// Mensagem de impressão para endereço de URL válido
eco "

".$ url."É um endereço de URL válido

";


// Lidar com a exceção de URL inválida
Catch (myException $ e)
// Ligue para o método de subclasse para imprimir a mensagem de erro
echo $ e-> display_error ();

// lidar com a exceção de URL vazia
Catch (Exceção $ E)

// Mensagem de erro de impressão para endereço URL vazio
echo $ e-> getMessage ();

?>

Saída:

Execute o script sem qualquer parâmetro de consulta.

http: // localhost/phpcode/trycatch2.php

Execute o script com um parâmetro de consulta nomeado url sem nenhum valor.

http: // localhost/phpcode/trycatch2.php?url =

Execute o script com um parâmetro de consulta nomeado url com um valor de URL inválido.

http: // localhost/phpcode/trycatch2.php?url = google

Execute o script com um parâmetro de consulta nomeado url com um valor de URL válido.

http: // localhost/phpcode/trycatch2.php?url = http: // google.com
Imagem

EXEMPLO 3: LIDAMENTO DE ERRO DE ARQUIVO DE FORMULAR USTIO

Crie um arquivo php com o seguinte script para saber o uso de tentativa, captura e finalmente bloqueie. O script tentará abrir o arquivo 'teste.Bloco Txt 'e Try lançará uma exceção se o arquivo não existir no local atual ou não conseguir abrir. O bloco de captura imprimirá a mensagem de erro lançada do bloco de tentativa. O código do bloco finalmente fechará o manipulador de arquivo depois de executar o bloco de tentativa. Tente o bloco imprimirá o conteúdo do arquivo se nenhum erro aparecer.

error_reporting (0);
tentar

// Tente abrir um arquivo para ler
$ file_handler = fopen ("teste.txt "," r ");
se(!$ file_handler)

// Jogue a exceção se o arquivo não puder abrir
Jogue nova exceção ("

Incapaz de abrir o arquivo.

");

outro

// Imprima o século do arquivo
enquanto(!feof ($ file_handler))

eco fgets ($ file_handler) . "
";

fclose ($ file_handler);


Catch (Exceção $ e)
// Imprima a mensagem de erro para abrir a exceção de erro do arquivo
echo $ e-> getMessage ();

finalmente

// Mensagem de terminação de impressão
eco "o programa terminado.";

?>

Saída:

Execute o script.

http: // localhost/phpcode/trycatch3.php

Exemplo-4: Usando bloco de try-capath aninhado

Crie um arquivo php com o seguinte script para saber a maneira de usar o bloco de tentativa aninhado. O script verificará o valor retirado de um URL é um número ou não no primeiro bloco de tentativa e o número tirado é maior que 100 ou não será verificado no segundo bloco de tentativa.

if (isset ($ _ get ['n'])))

// O primeiro bloco de tentativa
tentar
$ número = $ _get ['n'];
if (is_numeric ($ número))

// O segundo bloco de tentativa
tentar
if ($ número> = 100)
// Imprima a mensagem de sucesso
eco "o número é válido.";

outro
lançar uma nova exceção ('o número é inválido.');


Catch (Exceção $ e)
// Imprima o segundo erro
echo $ e-> getMessage ();


outro

lançar uma nova exceção ('o valor não é um número.');


Catch (Exceção $ e)
// Imprima o erro FIRT
eco $ e-> getMessage () . "
";


outro
eco "nenhum número deu.";
?>

Saída:

Execute o script sem qualquer parâmetro de consulta.

http: // localhost/phpcode/trycatch4.php

Execute o script com o valor do parâmetro de consulta menor que 100.

http: // localhost/phpcode/trycatch4.php?n = 78

Execute o script com o valor do parâmetro de consulta maior que 100.

http: // localhost/phpcode/trycatch4.php?n = 112

Exemplo 5: Usando o bloco Try-capath com a função

Crie um arquivo php com o seguinte script para saber o uso do bloco de transmissão com a função. O script levará dois valores numéricos dos parâmetros de consulta de URL e o bloco de try-capath chamará uma função que lançará uma exceção se o “Divisão por zero" Um erro ocorreu.

// Defina função para cálculo da divisão
Divisão de funções ($ A, $ B)
$ resultado = $ a/$ b;
se(!$ resultado)
// Exceção de lançamento para o resultado inválido
lançar uma nova exceção ('divisão por zero.');
outro
eco "

O resultado de $ a/$ b = $ resultado

";

if (isset ($ _ get ['n1']) && isset ($ _ get ['n2'])))))

tentar
$ número1 = $ _get ['n1'];
$ número2 = $ _get ['n2'];
// Função de chamada que verificará o erro
divisão ($ número1, $ número2);

Catch (DivisionByZeroError $ E)
// Imprima a mensagem de erro
eco '

Erro: ', $ e-> getMessage (), "

";


outro
eco "um ou mais números não foram fornecidos.";
?>

Saída:

Execute o script sem qualquer parâmetro de consulta.

http: // localhost/phpcode/trycatch5.php

Execute o script com os valores dos parâmetros de consulta, 10 e 5.

http: // localhost/phpcode/trycatch5.php?n1 = 10 e n2 = 5

Execute o script com os valores dos parâmetros de consulta, 10 e 0.

http: // localhost/phpcode/trycatch5.php?n1 = 10 e n2 = 0

Exemplo 6: Exibir mensagem de erro em detalhes para exceção personalizada

Crie um arquivo php com o seguinte script para exibir a mensagem de erro em detalhes usando diferentes métodos da classe de exceção. O script retirará o nome do arquivo do parâmetro URL e verifique se o arquivo existe ou não usando um bloco de tentativa.

if (isset ($ _ get ['fn'])))

tentar
$ filename = $ _get ['fn'];
se(!file_exists ($ filename))

lançar uma nova exceção ('o arquivo não existe.');


Catch (Exceção $ e)
// Exibir mensagem de erro em detalhes
eco '
Nome do arquivo: '.$ e-> getfile ().
'
Ocorreu o erro na linha: '.$ e-> getLine ().
'
Mensagem de erro: '.$ e-> getMessage ();

finalmente
eco "
Verifique outro arquivo.";


outro
eco "o nome do arquivo não deu.";
?>

Saída:

Execute o script sem qualquer parâmetro de consulta.

http: // localhost/phpcode/trycatch6.php

Execute o script com o parâmetro de consulta que contém o nome do arquivo inexistente.

http: // localhost/phpcode/trycatch6.php?fn = texto.TXT

Execute o script com o parâmetro de consulta que contém o nome do arquivo existente.

http: // localhost/phpcode/trycatch6.php?fn = trycatch5.php

Conclusão

Os usos básicos do bloco de try-capatch foram explicados neste tutorial usando scripts PHP muito simples. Espero que o conceito de manuseio de exceção no PHP seja liberado após praticar os exemplos deste tutorial adequadamente.