Botframework 如何确保捕获所有异常
由于公司防火墙的原因,我无法调试我的bot,因此我只能在Azure中部署和测试 我一直收到默认的未处理异常消息,通常我不知道为什么没有经过大量的尝试和错误 如何确保捕获所有异常以便记录错误 例如,这样可以很好地显示选项列表,但在用户有机会选择和选择之前,会在没有跟踪的情况下下沉。我在调用函数和ResumeAfter中都有捕获,它们都没有被调用:Botframework 如何确保捕获所有异常,botframework,Botframework,由于公司防火墙的原因,我无法调试我的bot,因此我只能在Azure中部署和测试 我一直收到默认的未处理异常消息,通常我不知道为什么没有经过大量的尝试和错误 如何确保捕获所有异常以便记录错误 例如,这样可以很好地显示选项列表,但在用户有机会选择和选择之前,会在没有跟踪的情况下下沉。我在调用函数和ResumeAfter中都有捕获,它们都没有被调用: PromptDialog.Choice<int>( context, OnSelectedPolicy, optio
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);
PromptDialog.Choice(
上下文
在选举政策上,
选项,
“您想根据哪项保险单索赔?”,
“哦,这不是一个有效的选项,请重试”,
3.
PromptStyle.Auto);
在启动代码中注册异常处理程序。我们使用log4net,因此在应用程序\u 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);
}
}
在启动代码中注册异常处理程序。我们使用log4net,因此在
应用程序\u 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);
}
}