使用 Bot Framework 開發 Bot 時,當發生 Exception 時,會出現 “Sorry, my bot code is having an issue.” ,那如果我們要自行處理錯誤呢? 可以參考Bot Framework Custom Error Messages and Exception Handling, Autofac,一個是建立一個 ExceptionHandleDialog 去包,另一個是俢改 PostUnhandledExceptionToUser 這個 Class ,然後再透過 Autofac 來置換成我們的 Class。
所以作者建立一個「PostUnhandledExceptionToUserOverrideTask」如下,
1 | public class PostUnhandledExceptionToUserOverrideTask : IPostToBot |
而作者是調整 DialogModule 中,將 PostUnhandledExceptionToUser 改成 PostUnhandledExceptionToUserOverrideTask,所以在 Global.asax.cs 中重新呼叫 RegisterAdapterChain 去 Replace,如下
1 | builder |
另一個方式則是直接將 PostUnhandledExceptionToUser 置換成 PostUnhandledExceptionToUserOverrideTask,如下,
1 | builder |
所以可以看到原本的 PostUnhandledExceptionToUser 已經被我們改成了 PostUnhandledExceptionToUserOverrideTask了,如下圖,