2011-04-12 2 views
2

私はこのような何かしたい:私はそれをハードコーディングができコースの現在のASファイルとコード行の文字列を作成するActionScript 3.0コンパイラマクロ?

try{ 
    operationThatMayFail(); 
} 
catch(e:Error){ 
    handleError(); 
    MyLogFileLogger.writeEntry("Error ocurred in file " + CURRENT_AS_FILE + " on line: " + CURRENT_LINE); 
} 

を - しかし、私は、ファイルとして、linenumbersはもう正しくありません、または多分私は名前の変更について何かを変更した場合asファイルなど。コンパイラ指令を使ってその文字列を作成できることは素晴らしいことです。

ActionScript 3.0で作成されたAIRアプリケーションでこれが可能ですか?

答えて

1

Error class caught in the exceptionを参照する必要があります。

try{ 
    operationThatMayFail(); 
} 
catch(e:Error){ 
    handleError(); 
    MyLogFileLogger.writeEntry(e.getStackTrace()); 
} 
+0

はい私は知っていますが、これはデバッグバージョンでのみ動作します。私は何かが間違っている場合、私たちにエラーログ – Mat

+0

を送ることができるように、エンドユーザーのインストールで動作するものを探しています。ファイルのメタデータを読み込み、それらのエラーをキャッチするには、Flash Player Debugが必要です。あなたができる最善のことは、重要な出来事のログを保持することの上に展開する前にエラーをキャッチしようとするユニットテストです。関数の周りにtry catchがあり、それが失敗した場合、その関数が問題であり、デバッガを使ってさらに調べるべき良いチャンスがあります... –

+0

明らかに、クライアントコンピュータ上でのみ失敗すれば、コンパイル時に適切なデバッグ文字列を作成するコンパイラ指令を持っていれば便利です – Mat

関連する問題