溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

如何進(jìn)行.net Core API異常信息返回處理

發(fā)布時(shí)間:2022-01-15 17:37:49 來源:億速云 閱讀:116 作者:柒染 欄目:大數(shù)據(jù)

這篇文章的內(nèi)容主要圍繞如何進(jìn)行.net Core API異常信息返回處理進(jìn)行講述,文章內(nèi)容清晰易懂,條理清晰,非常適合新手學(xué)習(xí),值得大家去閱讀。感興趣的朋友可以跟隨小編一起閱讀吧。希望大家通過這篇文章有所收獲!

C#中我們?nèi)绻僮鬟^程中出現(xiàn)錯(cuò)誤一勝敗都用throw拋出異常,然后前端接收到后會(huì)直接顯示出來服務(wù)端拋出的異常是什么。先看一下未修改前的使用效果

我們直接在.net Core的API里設(shè)置校驗(yàn)的通訊時(shí)間和簽名,如果不對(duì)直接拋出異常。

C# .net Core的代碼

如何進(jìn)行.net Core API異常信息返回處理

Android的代碼的顯示效果

如何進(jìn)行.net Core API異常信息返回處理

在android中我們直接看到i當(dāng)rsp.body()返回的是空,我們就直接捕獲到錯(cuò)誤的信息顯示出來

看看運(yùn)行的時(shí)候效果

如何進(jìn)行.net Core API異常信息返回處理

可以看到已經(jīng)出來異常了,但是顯示注冊失敗后面一串XML的信息,

在服務(wù)端拋的異常是

如何進(jìn)行.net Core API異常信息返回處理

如何進(jìn)行.net Core API異常信息返回處理

并不是我們想到的結(jié)果,我也看不出來到底是什么原因,錯(cuò)誤出現(xiàn)在哪。遇到空上的情況我們應(yīng)該怎么處理呢

修改服務(wù)端代碼

如果想要實(shí)現(xiàn)服務(wù)端拋出的異常在前端能接收到,我們需要在服務(wù)端進(jìn)行修改。在.net Core里面Startup.cs文件里的Configure進(jìn)行處理一下

如何進(jìn)行.net Core API異常信息返回處理

可以看到,原來的處理里面通過app.UseExceptionHandler直接就跳轉(zhuǎn)到一個(gè)錯(cuò)誤頁面,所以也造成了接收到的數(shù)據(jù)是一些XML的數(shù)據(jù)。我們現(xiàn)在把這里改造一下。

我們先把這上面這一段屏蔽了

如何進(jìn)行.net Core API異常信息返回處理

然后重新寫一個(gè)app.UserExeceptionHandler

            app.UseExceptionHandler(t =>
            {
                t.Run(async context =>
                {
                    var ex = context.Features.Get<IExceptionHandlerFeature>()?.Error;
                    string msg = ex == null ? "發(fā)生錯(cuò)誤。" : ex.Message;
                    context.Response.ContentType = "text/plain;charset=utf-8";
                    await context.Response.WriteAsync(msg);
                });
            });

如何進(jìn)行.net Core API異常信息返回處理

然后我們重新編譯和發(fā)布一下

我們再次用android程序調(diào)用一下,看看

如何進(jìn)行.net Core API異常信息返回處理

可以看出來,上面拋出的異常信息已經(jīng)可以在前端接收到顯示出來了。

感謝你的閱讀,相信你對(duì)“如何進(jìn)行.net Core API異常信息返回處理”這一問題有一定的了解,快去動(dòng)手實(shí)踐吧,如果想了解更多相關(guān)知識(shí)點(diǎn),可以關(guān)注億速云網(wǎng)站!小編會(huì)繼續(xù)為大家?guī)砀玫奈恼拢?/p>

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI