Curl Global Community
エラー時のロケーション情報を取得したい - Printable Version

+- Curl Global Community (https://communities.curl.com)
+-- Forum: Discussions (https://communities.curl.com/forumdisplay.php?fid=1)
+--- Forum: General Curl questions (https://communities.curl.com/forumdisplay.php?fid=2)
+--- Thread: エラー時のロケーション情報を取得したい (/showthread.php?tid=954)



エラー時のロケーション情報を取得したい - umemura - 08-09-2013

例外が発生したときに、例外の内容をコンソールに出力しているのですが、
同時に、どのファイルの、どの行で、例外がキャッチされたのかを出力したいです。

具体的には、例外発生時のダイアログで「詳細」ボタンを押して表示されるスタックトレースの
1行目(#0)に表示される情報がほしいです。

どのようにすれば可能でしょうか。



RE: エラー時のロケーション情報を取得したい - umemura - 08-09-2013

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}
    }
}