Um erro de aplicativo é um erro de tempo de execução que não pode necessariamente ser evitado escrevendo um código livre de erros. Erros de tempo de execução podem ocorrer por uma variedade de razões. No entanto, nem todos os erros devem ser tratados como exceções em seu código. Em alguns casos, um erro de programa pode refletir uma condição de erro esperada ou de rotina. Neste caso, você pode querer evitar o uso de tratamento de exceção para lidar com o erro do programa. Em outros casos, um erro de programa reflete uma condição de erro inesperado que pode ser manipulado em seu código. Por exemplo, mesmo que você tenha verificado para garantir que existe um arquivo, ele pode ser excluído antes que você possa abri-lo, ou ele pode estar corrompido.
A falha do sistema é um erro de tempo de execução que não podem ser tratadas por meio de programação de uma maneira significativa. Por exemplo, qualquer método pode lançar uma exceção OutOfMemory se o Runtime é incapaz de alocar memória adicional
Um modelo de tratamento de exceção que se baseia a representação de exceções como objetos, e a separação de código de programa e o código de tratamento de exceções em blocos TRY e blocos CATCH. Pode haver um ou mais blocos catch, cada um projetado para lidar com um determinado tipo de exceção, ou um bloco projetado para capturar uma exceção mais específica que outro bloco.
Try…Catch
Marca um bloco de instruções para tentar (try) e especifica uma resposta(catch), uma exceção deve ser lançada (throw).
Divisão por Zero
Em programação, uma tentativa de dividir um número de ponto flutuante por zero deve resultar no número infinito (positivo ou negativo) de acordo com o padrão IEEE 754 para pontos flutuantes. No entanto, dependendo do ambiente de programação e do tipo de número sendo dividido por zero (como o inteiro, por exemplo), é possível que: seja gerada uma exceção, seja produzida uma mensagem de erro, faça o programa terminar, resulte em infinito positivo ou negativo ou resulte em um valor especial não numérico (NaN).
Exemplo:
Neste exemplo executamos uma tentativa de dividir um numero inteiro por zero, na maioria das linguagens de programação está tentativa resultará em um erro em tempo de execução, em JavaScript está divisão resultará em um numero infinito, neste caso vamos criar uma exceção e lançar uma mensagem de erro para o usuário.
Html / JavaScript
<!DOCTYPE html> <html> <head> <title>Desenvolvimento Aberto</title> </head> <body> <h2>Desenvolvimento Aberto -Try...Catch</h2> <br> <h3>JavaScript</h3> <br> <pre> <script> var n1 = 10; var n2 = 0 document.writeln("Um numero não pode ser divido por zero\n"); document.writeln("vamos tentar dividir " + n1 + " por " + n2 ); try { var divisao = n1 / n2; if (divisao == Infinity) { throw "Desenvolvimento Aberto - Impossivel dividir por zero. Valor = " + divisao; } } catch (erro) { alert(erro) } </script> </pre> </body> </html>