例外が発生したときに、例外の内容をコンソールに出力しているのですが、
同時に、どのファイルの、どの行で、例外がキャッチされたのかを出力したいです。
具体的には、例外発生時のダイアログで「詳細」ボタンを押して表示されるスタックトレースの
1行目(#0)に表示される情報がほしいです。
どのようにすれば可能でしょうか。
this-localtion というのがあるのですね。
他にも this-class や、this-function などの this-XXX は共通部品等に有用そうです。
下記は、シングルトンクラスのファクトリーが2回以上呼び出されたらログを出力するサンプルです。
Code:
{define-class public final Singleton
let private instance:#Singleton = null
field data:String = "シングルトン"
{constructor private {default}}
{factory public {get-instance}:Singleton
{if-non-null Singleton.instance then
{output {this-location}}
{output "すでに " & {this-class} & " のインスタンスは生成済みです"}
else
set Singleton.instance = {Singleton}
{output {this-location}}
{output {this-function} & "から " & {this-class} & " のインスタンスが生成されました"}
}
{return Singleton.instance asa Singleton}
}
}
{CommandButton
label = "シングルトンクラス",
{on Action do
def s = {Singleton.get-instance}
{popup-message s.data}
}
}