返回首页

简介
正常情况下,当异常发生。NET中,异常的详细信息显示和应用程序或者继续或失败。此源代码可以收集必要的信息,并将其发送到SMTP服务器,这样就会到达您的邮箱中。未处理的异常
例如,采取零。NET程序中可能出现的的异常下面的鸿沟。

int i = 0;

int j = 1 / i;

一旦抛出此异常。NET会先看看是否有任何试图捕获异常,否则会出现以下对话框。
{S0}
最终用户可以然后继续执行所要求的功能或退出应用程序。

这是什么,它​​的外观与内置的LCR方案一样,如果发生异常小崩溃报告是如何工作的
下面的图片显示错误发生在你的程序是如何生成和发送给您

这是该方案的类图。所使用的主要职能是(Application_ThreadException和CurrentDomain_UnhandledException)事件处理程序发出一个信号,一旦有一个例外。之后,LCR把它从那里... ...
如何用于小崩溃报告
815航班坠毁前记者工作,事件处理程序必须设置检测时发生异常。{C}
不要忘记... ...
// Event handler functions

static void CurrentDomain_UnhandledException(object sender, 

            UnhandledExceptionEventArgs e)

{

    CrashReporter ErrorDlg = new CrashReporter((Exception)e.ExceptionObject);

    ErrorDlg.ShowDialog();

}



static void Application_ThreadException(object sender, 

       System.Threading.ThreadExceptionEventArgs e)

{

    CrashReporter ErrorDlg = new CrashReporter(e.Exception);

    ErrorDlg.ShowDialog();

}

即使指定的事件参数只是一个正常的异常对象被发送,检索实际的例外是通过typeof运算。
接下来,我们需要配置PHP脚本的URL和错误的目录(通常刚刚离开)。
private readonly string BugReportURI = "http://www.bugreporturi.com/send.php";

private readonly string ErrorDirectory = string.Format(@"{0}\Errors", 

                                         Environment.CurrentDirectory);

一旦完成,使用的PHP上传文件夹中的文件来配置电子邮件的SMTP服务器,用户名和密码。然后将它们上传到您指定的Web服务器。
$host = "mail.example.com";

$username = "smtp_username";

$password = "smtp_password";

对其进行测试,创建一个除零异常。
int i = 0;

int j = 1 / i;

你的程序现在应该准备发送bug报告。兴趣点
如果您正在寻找地方上传文件,并将它们发送到一个安全的SMTP服务器,只是寻找一个免费的网络主机已cPanel的谷歌。此外,如果您正在编辑要发送的数据,请尊重人民的隐私。历史修订版1.0 - 发表文章。2.0版 - 图片补充,更新的解释| ub3rst4r

回答

评论会员:游客 时间:2012/01/25
GPL的副限制较少的许可证。特殊情况下的错误处理
。Donsw
评论会员:游客 时间:2012/01/25
GPL的?你也应该给一个邮件和别的ption。像其他的SID电子邮件并不总是和明智使用。欢呼声中,Donsw我最近的一篇文章:完整和增量备份的数据文件-
守则大师
评论会员:游客 时间:2012/01/25
第一,你不应该创建一个报告文件undless用户要求,这可能会导致更多的异常,如果在有限的信任运行,用户应该选择是否要重新启动应用程序或继续执行他的命令或过程。的文章没有任何交代的代码,你应该使用ASP.net报告页而不是PHP。总,这是一个很好的解决方案,但糟糕的文章,并在技术的兼容性。"想象力比知识更重要......"{爱因斯坦}
内维尔弗兰克斯
评论会员:游客 时间:2012/01/25
GPL许可证。没有足够的详细信息
Giga77
评论会员:游客 时间:2012/01/25
我喜欢的概念(这个自己喜欢使用的东西)-不过,我有我的得分由于使用GPL的扣除1。我没有任何反对开源,但为什么不释放在LGPL甚至更好的麻省理工学院/BSD或类似的东西?GPL的限制简直是太