2016-05-10 8 views
1

私は、例えば 、コンソールアプリケーションでC#のプラットフォームでは、いくつかのJavaScriptファイルを実行したい:私のJS関数は、それは私のエラーを検出するために私に任意のエラーテキストやヒントを与えるものではありません。エラーが発生したときJS関数を実行すると、C#のEdgejsでエラーテキストを取得する方法はありますか?

using System; 
using System.Threading.Tasks; 
using EdgeJs; 

class Program 
{ 
    public static async Task Start() 
    { 
     var func = Edge.Func(@" 
      return function (data, callback) { 
       var hello = function() { 
         // some javascript syntax error ... 
         return ' Hello ' + data; 
        }; 
       callback(null, hello()); 
      } 
     "); 

     Console.WriteLine(await func("Word!")); 
    } 

    static void Main(string[] args) 
    { 
     Start().Wait(); 
    } 
} 

しかし。

JS関数を実行すると、C#でEdgejsでエラーテキストを取得するにはどうすればよいですか?

答えて

1

一つのアプローチは、このことができます。

using System; 
using System.Threading.Tasks; 
using EdgeJs; 

    class Program 
    { 
    public static async Task Start() 
    { 
    var func = Edge.Func(@" 
    return function (data, callback) { 
    var error = ''; 
    var hello = function() { 
    try{ 
      some javascript syntax error .... 
      return 'Hello ' + data; 
    }catch(e){ error = e;} 
      }; 
    var result = hello(); 
    if(error == '') 
    { 
      callback(null, result); 
    } else { 
       callback(null, error); 
      } 
    } 
    "); 

    Console.WriteLine(await func("Word!")); 
    } 

    static void Main(string[] args) 
    { 
     Start().Wait(); 
    } 
} 

私は私のJSコードではなく、場合にtryキャッチを使用して意味がjsのコードを変更することなく、他の方法かもしれない、それが優れていました。

関連する問題