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 detail, errorCode, extendedInfo, message, object e type. Todos esses atributos são opcionais, com o atributo type default 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á:
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.
Versão em inglês: Adobe ColdFusion Cookbook
0 responses to “Exibindo um erro customizado”