Para a declaração de nossas próprias exceções customizadas precisamos, inicialmente
criar uma classe que irá representar nossa exceção e fazer com que essa herde a
classe Exception ou outra. Assim, temos acessos aos seus atributos e métodos:
Sintaxe 1
modificador_acesso class minha_excecao extends <excecao_base>
{
//corpo
}
Onde
excesao_base: classe Exception ou filha
No construtor de nossa exceção customizada, utilizamos um parâmetro para receber uma mensagem informativa
do erro e chamamos o construtor da classe herdada por intermédio da palavra reservada parent.
Sintaxe 2
modificador_acesso class minha_excecao extends <excecao_base>
{
function __construtor($msg, $cod)
{
parent::__construct($msg, $cod);
}
}
Onde
excesao_base: classe Exception ou filha
$msg: mensagem de erro
$cod: código do erro
Quando herdamos a classe Exception, podemos fazer uso de seus métodos mostrados \
na tabela abaixo:
Tab 1.: Métodos
Método |
Descrição |
getMessage(): string |
Retorno a mensagem de erro |
getPrevious(): ?Throwable |
Retorno a exception mais interna |
getCode(): int |
Retorna o código do erro |
getFile(): string |
Retorna o nome do arquivo |
getLine(): int |
Retorna a linha do arquivo onde ocorreu a exceção |
getTrace(): array |
Retorna stack trace |
getTraceAsString(): string |
Retorna stack trace como string |
Exemplo 1
<?php
class MinhaException extends Exception
{
function __construct($msg, $cod)
{
parent::__construct($msg,$cod);
}
}
Saída
-
Para lançar e relançar exceções customizadas é feita da mesma forma que outras exceções vista em
Gerenciando Erros: Exception.