簡體   English   中英

如何處理JavaScript Web應用程序在C#中引發的異常?

[英]How to handle a exception thrown in c# by a javascript web app?

我正在開發一個Web應用程序,並使用整體dojo框架(帶有html5和javascript)進行客戶端構建(我正在使用xhr.post函數與服務器進行通信)。 服務器端是c#中的asmx服務。

問題來了:當我的服務的網絡方法引發異常時:

        try
        {
            throw new Exception("TEST");
        }
        catch (Exception ex)
        {
            throw ex;
            // TODO: send some info to the client about the error
        }

意識到客戶端已發生錯誤,並觸發錯誤回調函數:

        deferred = xhr.post({
            url: that.config.urlService,
            handleAs: that.config.handleAs,
            contentType: that.config.contentType,
            postData: that.config.parameters
        });

        deferred.then(function (res) {
            that.success(res);
        },
            function (err) {
                 if (that.config.callbackFail) {
                     that.config.callbackFail(err, that.config.parameters);
                 }
            }
        );

但是在'err'參數中,我沒有異常信息,但有消息:

'NetworkError:500 Internal Server Error-http:/.../ Services / Applications / Metrawa / ServiceManagement / WSJob.asmx / Filter'

並使用firebug檢查對服務器的調用,在“響應”選項卡中,我可以看到奇怪的字符,例如未序列化異常。

我想要的是獲取javascript中的異常信息。 我已經搜索了一些與此相關的信息,例如創建了一個自己的可序列化的異常類,但是它都不起作用。 有什么辦法嗎?

提前致謝。

您可以選擇在服務器端代碼中處理該異常,然后以JSON,XML甚至String的形式發送回該異常,即客戶端可以理解的內容。

我將捕獲異常服務器端,並始終返回帶有“ Result”屬性的有效對象:

例如res.Result(如“ OK”或“ ERR”等,並在客戶端上處理)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM