これは InterSystems FAQ サイトの記事です。
TRYブロック内で任意のカスタムエラーを発生させたい場合、以下のように throw で例外を渡すことが可能です。
以下のサンプルでは、Stcount が 1 より小さい場合にカスタムエラーを発生させています。
Class User.Test
{
ClassMethod ExceptionTest()
{
try
{
// : some codesif (Stcount<1) {
throw##class(%Exception.General).%New(" ユーザ定義エラー","5001","ロケーション","エラー時のデータ")
// ユーザ作成エラーは5001以降
}
}
catch ex
{
write"エラー #", ex.Code, ": ", ex.Name, " : ", ex.Location, " ", ex.Data
return
}
}
}
上の例では、Stcount が 1 より小さい場合、以下のようなエラーが出力されます。
USER>do##class(User.Test).Excepti


.png)
.png)

.png)

