O tratamento de exceção estruturada é
O erro não está travado, porque a manipulação de exceção estruturada ainda não está em vigor, e que o usuário vê a seguinte mensagem de erro padrão. Antes que você pode pegar o erro, você deve dizer ColdFusion para tentar pegar um erro:
Cftry diz ColdFusion para ver o bloco de código fechado para erros, e cfcatch ColdFusion diz o que fazer se ocorrer um erro. Cfcatch type = "Qualquer" ColdFusion diz que qualquer erro faz com que a execução passe para o código dentro desse bloco cfcatch específicos. Cfcatch tem um único atributo chamado tipo, que especifica o tipo de erro que é capturado. Se você quer pegar os erros do banco de dados único, por exemplo, você pode usar o seguinte código:
Se você usar esse cftry / cfcatch construir, todos os erros do banco de dados são capturados e manipulados pelo código dentro da tag cfcatch par, e todos os erros nondatabase cair para o nível seguinte de exceção estruturada do seu aplicativo de tratamento de quadro. Ao especificar um tipo de exceção avançados como o argumento para cfcatch do atributo tipo, você pode capturar e tratar erros muito específicos que ocorrem fora dos limites do ColdFusion Server. O ponto de ter este tipo de erro muitos é que a sua manipulação de exceção estruturada granular pode responder a cada Tipo de uma maneira específica. Você poderia, por exemplo, têm um manipulador de exceção que pega dois tipos diferentes e trata-los de duas maneiras diferentes, como segue:
O exemplo anterior capturas ou um erro de banco de dados ou um erro de Expressão e saídas de uma mensagem diferente dependendo de qual delas. Se o erro não é um banco de dados ou erro de expressão, o erro não está travado e que o usuário vê a saída de mensagem padrão. Cfcatch type = "Qualquer" não pode pegar um tipo de erro. Especificamente, type = "Qualquer" captura qualquer erro decorrente da java.lang.Exception classe Java. type = "Qualquer" não significa, porém, detectar erros decorrentes java.lang.Throwable. Para capturar esses erros, você deve definir uma cfcatch especiais, como segue:
É raro encontrar esse tipo porque nenhuma das características padrão ColdFusion jogar esse tipo de erro. Você pode se surpreender ao saber que que você não pode pegar alguns erros em tudo. O código a seguir, por exemplo, gera um erro, independentemente do cftry em torno do código ruim:
O CFSET não tem conteúdo, assim ColdFusion gera um erro informando, Invalid CFML Construir Found on line 9 na coluna 7. Este resultado pode parecer estranho, entretanto, porque você tem um cftry e cfcatch type = "Qualquer". O problema aqui é que o mau CFSET criado um erro de compilação, que não pode ser pego com cfcatch. Cfcatch pode pegar apenas executar um erro de tempo, que ocorre durante a execução do modelo. No caso do trecho anterior, o ColdFusion não poderia conseguir analisar e compilar a página, assim que a manipulação de exceção não terão efeito. Se você fosse CFINCLUDE uma página com um erro tempo de compilação, a página chamada poderia pegar um modelo erro de tipo. Isso é raro, e você deve ter cuidado para não confiar na manipulação de exceção para a captura em tempo de compilação. A resposta curta é nada! Você pode lidar com um erro de qualquer maneira que achar melhor, de ignorar completamente a examiná-la em detalhes, para redistribuir o usuário para um modelo alternativo. Você costuma fazer uma de duas coisas, no entanto. Quer redirecionar o usuário para uma página diferente ou mostrar um user-friendly mensagem dizendo o que aconteceu. Você pode seguir qualquer uma das duas filosofias em redirecionar o usuário. O primeiro é ter uma página de erro específico para cada erro que podem ocorrer e redirecionar o usuário para a página específica, como no exemplo a seguir:
A desvantagem desta abordagem é que você não pode dizer exatamente o que aconteceu e porquê. A melhor opção é redirecionar o usuário para uma página de erro, mas passar a mensagem de erro na URL, como segue:
Esse código passa uma mensagem de erro detalhada em um parâmetro de URL para a página de erro. Outra opção é a visualização direta de algum tipo de mensagem em vez de redirecionar o usuário, como segue:
Você pode perceber que o código anterior adiciona um CFABORT após a mensagem, você não quer que a página errados para continuar a execução após um erro ocorre. A opção final que é raramente usado é ignorar o erro. Isso geralmente é apropriado apenas se você está esperando um erro para ocorrer, mas isso não importa para você saber se o erro ocorre ou não, como mostra o seguinte código:
Se você está ignorando um erro, acrescentando um comentário ao bloco cfcatch é geralmente uma boa idéia para que você não está confuso, se você voltar e ler o seu código mais tarde. E estar ciente de que ignorar um erro pode revelar-se perigoso, porque você pode acabar inadvertidamente pegar um erro mais grave do que aquela que você estava esperando. Pelo menos o log do erro usando CFLog pode ser uma boa idéia, mesmo se você pretende ignorá-lo, como no exemplo a seguir:
Dessa forma, você pode rever o erro específico no arquivo de log. um artigo submetido por José Carreto Isenção de responsabilidade:O nosso site não se responsabiliza pelo conteúdo deste artigo. Webarticles é uma fonte de informação livre. Importante: Este artigo "O tratamento de exceção estruturada é" foi traduzida por um software automático. Nós sentimos muito por quaisquer erros de ortografia que pode ter ocorrido. Obrigado pela sua compreensão.
|
|||||
| Online: 355 users browsing the articles directory |
|
|