我怎样才能确保捕获所有异常

时间:2017-04-13 11:37:17

标签: botframework

由于企业防火墙,我无法调试我的僵尸程序,所以我只能在Azure中进行部署和测试。

我一直收到默认的未处理异常消息,通常我不知道为什么没有大量的反复试验。

如何确保捕获所有异常以便我可以记录错误?

例如,这会显示选项列表正常,但在用户有机会选择和选项之前会没有跟踪。我在调用函数和ResumeAfter中都有捕获,它们都没有被调用:

PromptDialog.Choice<int>(
    context,
    OnSelectedPolicy,
    options,
    "Which policy do you want to claim under?",
    "Ooops, that is not a valid option, please try again",
    3,
    PromptStyle.Auto);

1 个答案:

答案 0 :(得分:0)

在启动代码中注册异常处理程序。我们使用log4net,因此我们在Application_Start

中有这样的行
GlobalConfiguration.Configuration.Services.Add(typeof(IExceptionLogger), 
                                               new Log4netExceptionLogger());

使用支持类显示如何处理错误:

public class Log4netExceptionLogger : ExceptionLogger {
    private static readonly ILog log = LogManager.GetLogger("MSBot Unhandled Exception");

    public override void Log(ExceptionLoggerContext context) {
        log.Error(context.Exception);
    }
}