«

»

Dec 04

Print this Post

Exibindo um erro customizado

Problema:

Um aplicativo precisa ter a habilidade de exibir um erro customizado quando acontecer um problema.

Solução:

ColdFusion permite um aplicativo exibir um erro customizado usando a tag <cfthrow>.

Explicação detalhada:

Há vezes em que um aplicativo precisa exibir uma mensagem de erro quando um erro atualmente não tenha ocorrido. Por exemplo, um aplicativo que permite que os usuários se registrem e requer um único nome de usuário ou endereço de e-mail exclusivo, vai querer lançar um erro se um usuário tentar se registrar com um nome de usuário ou e-mail que já está em uso. Isto é conseguido usando-se a tag <cfthrow>.

A tag <cfthrow> permite voce especificar os atributos customizáveis detailerrorCode,extendedInfomessageobject e type. Todos esses atributos são opcionais, com o atributo typedefault para Application.

O código abaixo ilustra a solução para o problema acima, onde um endereço de email exclusivo é requerido. Se o endereço de email não fôr único, ColdFusion lançará  erro com a mensagem e tipo customizados.

<cffunction name="checkEmailAddress" access="public" returntype="boolean">
     <cfargument name="emailAddress" required="true" type="string" />
     <cfquery datasource="#request.dsn#" name="qCheckEmailAddress">
          SELECT 
               emailAddress
          FROM
               tbl_User
          WHERE
               emailAddress = <cfqueryparam value="#arguments.emailAddress#" cfsqltype="cf_sql_varchar" />
     </cfquery>
     <!--- Se a query resultou algum registro, exiba um erro --->
     <cfif qCheckEmailAddress.RecordCount>
          <cfthrow type="UNIQUE_VIOLATION" message="Email address is not unique." />
     <cfelse>
          <cfreturn true />
     </cfif>
</cffunction>

Se usuário submiter um email não único e o erro não fôr pego, o seguinte aparecerá:

CFTHROW

A fim de capturar a excessão, a tag <cfcatch> deve especificar o tipo customizado que foi lançado no atributo type.

<cfcatch type="UNIQUE_VIOLATION">
     The email address supplied is not unique
</cfcatch>

A tag <cfthrow> dá ao aplicativo a habilidade de manuzear sem problemas erros customizados e ainda é uma outra excelente e fácil ferramenta fornecida pelo ColdFusion.

by Kevin Schmidt
Versão em inglês: Adobe ColdFusion Cookbook

Permanent link to this article: https://ensina.me/coldfusion/exibindo-um-erro-customizado/

Leave a Reply