Php

Php: Criando uma classe de exceção personalizada – Usando Try, Catch e extendendo a errorMessage para gerar erro personalizado

Quando uma exceção é lançada, o código não será executado, e o PHP tentará “pegar” (fazer catch) o bloco. Com o Php 5 é possível extender a classe customException para gerar mensagem personalizadas.

O código abaixo faz o seguinte:

  • Cria uma classe com o nome customException, que irá extender Exception;
  • Dentro dessa classe, a função errorMessage() será extendida afim de exibir a mensagem dentro de tags de comentário <!– html comentário –>, ou seja, somente serão exibidas no código fonte da página;
  • Adiciona uma variável $email, esta recebe um e-mail inválido;
  • Abre um bloco try, que é responsável por tratar exceções.
  • Através da função filter_var identifica que o e-mail é inválido;
  • Dispara através do throw uma customException;
  • O bloco catch, identifica que existe uma exceção a ser tratada, e chama a errorMessage(), que foi pre
<?php
class customException extends Exception
  {
  public function errorMessage()
    {
    //error message
    $errorMsg = 'Erro na linha '.$this->getLine().' do arquivo '.$this->getFile()
    .': <b>'.$this->getMessage().'</b> não é um endereço de e-mail válido';
    return $errorMsg;
    }
  }

$email = "someone@example...com";

try
  {
  //check if
  if(filter_var($email, FILTER_VALIDATE_EMAIL) === FALSE)
    {
    //throw exception if email is not valid
    throw new customException($email);
    }
  }

catch (customException $e)
  {
  //display custom message
  echo $e->errorMessage();
  }
?>

Apesar do exemplo trabalhar com apenas a escrita do código em comentário html, as funcionalidades podem sem implementadas. Por exemplo enviar para um log ou enviar um e-mail para o administrador do site.

Fonte: w3schools

Anúncios
Padrão

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s