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.