例外文字列の変更

例外オブジェクトをcatchしてlogを出してみると、ろくな出力をしてくれない場合があります。
たとえば、SQLiteErrorは、 [object SQLiteError] としか出力してくれません。
それではわかりづらいのでcatch節を書き直したりするのですが、
いちいち面倒ですよね。

そんな時は、組み込みオブジェクトだからとひるまずに、toStringメソッドを
書き換えてしまう方法もあります。

SQLiteError.prototype.toString = function(){
return '[' + this.errCode + '] ' + this.errMsg;
};

こうすれば、使用時は普通にログするだけで、ちゃんとエラーメッセージを取得することができます。
他のオブジェクトでも応用できるかと思います。

try
{
var db = new SQLite();
db.open(':unknown:');
// ....
}
catch (e)
{
log(e);
}

と言うか、組み込みのSQLiteオブジェクトがちゃんとtoStringメソッドを
実装してくれてれば良いだけなんですが・・・。

Trackback URL for this post:

http://nonn-et-twk.net/twk/trackback/125
0