Especificação e Monitoramento Dinâmico da Política de Tratamento de Exceções
tratamento de exceções; monitoramento; análise dinâmica; política de tratamento de exceções.
A política de tratamento de exceções de um sistema compreende o conjunto de regras de design que especificam o comportamento e tratamento das condições excepcionais, ou seja, define como as exceções devem ser manuseadas e disparadas. Essa política geralmente não é documentada e fica definida implicitamente pelo arquiteto do sistema. Por essa razão os desenvolvedores podem pensar que apenas inserindo blocos try-cach em todos locais onde exceções podem potencialmente ser lançadas estão lidando adequadamente com as condições excepcionais de um sistema. Porém este comportamento pode transformar o tratamento das condições excepcionais em uma generalização do mecanismo "goto", tornando o programa mais complexo e menos confiável. Este trabalho propõe uma linguagem específica de domínio, chamada ECL (Exception Contract Language) para especificar a política de tratamento de exceções e uma ferramenta de monitoramento em tempo de execução que verifica dinamicamente a política de tratamento de exceções. Essa ferramenta é chamada de DAEH (Dynamic Analysis of Exception Handling e é implementada na forma de uma biblioteca de aspectos, que pode ser adicionada a uma aplicação Java sem a necessidade de alterar o código fonte da mesma. Esta abordagem foi aplicada a dois sistemas WEB, a quatro versões do framework JUnit e a uma aplicaticação móvel. Os resultados indicam que esta abordagem pode ser usada para expressar e automaticamente verificar a política de tratamento de exceções de sistemas, e, consequentemente apoiar o desenvolvimento de sistemas Java mais robustos.