Como este artigo é voltado para iniciantes que não sabem nada (relativamente ou absolutamente) sobre exceções, é primordial que se defina o que é exceção no PHP.
Exceção pode ser entendida como um "erro" que ocorre durante a execução de um script PHP. Esse "erro" pode ser um erro próprio do PHP como, por exemplo, quando se tenta incluir um arquivo inexistente através de include(), ou um "erro" gerado propositalmente pelo script, como, por exemplo, quando informamos o usuário ou senha errados num script de login.
Para clarear isso, vamos fazer um exemplo:
<?php
try {
if(!mysql_connect('localhost', 'root', '')){
throw new Exception('Erro na conexão');
}else{
echo 'Conexão concluída';
}
}catch (Exception $e){
echo $e->getMessage();
}
?>
O que o código acima faz é tentar conectar com um servidor MySQL. Se a conexão ocorrer, a mensagem "Conexão concluída" será mostrada, senão, uma exceção será disparada pela linha throw new Exception('Erro na conexão'); e o bloco "catch" será chamado.
No nosso exemplo, o bloco "catch" apenas irá imprimir a mensagem "Erro na conexão", que foi definida no comando "throw".
Um iniciante poderá dizer: não existe uma maneira de fazer isso com blocos "if"? Sim, é possível, porém convém lembrar que estamos trabalhando com um exemplo muito, muito simples. Em scripts mais elaborados e complexos, tratar "erros" com blocos "if" pode se tornar extremamente complexo.