以下是我的代码示例:
<cftry>
<cfquery name="myquery" datasource="logindetails">
INSERT INTO userdetails
(FirstName,LastName,Email,Phonenumber,Country,Gender)
VALUES
('#Form.firstname#','#Form.lastname#','#Form.emailID#',
'#Form.PhoneNumber#','#Form.country#','#Form.gender#')
</cfquery>
<cfoutput>
<b>Your Form has been registered</b>
</cfoutput>
<cfcatch type="database">
<cfoutput>Email already exists. Try with a different email address</cfoutput>
</cfcatch>
<cfcatch type="any">
<cfoutput>Sorry! some error occured.</cfoutput>
</cfcatch>
</cftry>
我有两个不同的数据库异常,我想在数据库中显示这两个异常的不同消息,所以我问如何在ColdFusion中创建自定义异常?
答案 0 :(得分:1)
ColdFusion中的自定义异常是使用<cfthrow>
标记创建的。以下是关于该主题的众多文件之一:
https://helpx.adobe.com/coldfusion/cfml-reference/coldfusion-tags/tags-t/cfthrow.html
答案 1 :(得分:0)
我认为您在询问是否可以为cfquery抛出的两个不同的异常提供自定义消息(而不是可以使用cfthrow完成的自定义异常)
如果是这样,来自cfquery的任何错误可能都是类型数据库,因此您必须检查cfcatch中的消息并根据错误消息的内容更改消息,例如
<cftry>
<cfquery name="myquery" datasource="logindetails">
INSERT INTO userdetails
(FirstName,LastName,Email,Phonenumber,Country,Gender)
VALUES
('#Form.firstname#','#Form.lastname#','#Form.emailID#',
'#Form.PhoneNumber#','#Form.country#','#Form.gender#')
</cfquery>
<cfoutput>
<b>Your Form has been registered</b>
</cfoutput>
<cfcatch type="database">
<cfoutput>#findNoCase("error message 1", cfcatch.message) ? "Email already exists. Try with a different email address" : "Some other error message"#</cfoutput>
</cfcatch>
<cfcatch type="any">
<cfoutput>Sorry! some error occured.</cfoutput>
</cfcatch>
</cftry>
根据db返回的错误,您可能需要检查多个属性,因此here是一个cfcatch属性列表