ユーザ定義の例外処理について余り詳しく知っていなかったのでメモ…_(:3」∠)_
cfcatchタグの順番に関係せず、cftryタグ内で最もtypeが一致している例外が実行されます。
下記のサンプルコードを実行すると、22行目からの例外処理が実行されます。
<cftry>
<!--- ユーザ定義の例外をthrow --->
<cfthrow type="TestApp.TestException.InvalidData">
<!---
下記の順に優先して例外処理が呼び出される
1.TestApp.TestException.InvalidData
2.TestApp.TestException
3.TestApp
--->
<cfcatch type="any">
<cfoutput>
CatchException is [any]
</cfoutput>
</cfcatch>
<cfcatch type="TestApp">
<cfoutput>
CatchException is [TestApp]
</cfoutput>
</cfcatch>
<!--- --->
<cfcatch type="TestApp.TestException">
<cfoutput>
CatchException is [TestApp.TestException]
</cfoutput>
</cfcatch>
<cfcatch type="TestApp.TestException.InvalidData">
<cfoutput>
CatchException is [TestApp.TestException.InvalidData]
</cfoutput>
</cfcatch>
</cftry>
ついでですが、「any」を追加しても結果は同じでした。
<cfcatch type="any">
<cfoutput>
CatchException is [any]
</cfoutput>
</cfcatch>
C#と違って例外処理の記述順に厳しくなかったり、finallyが無かったりするので
使う時は要注意ですね…

