从堆栈跟踪创建错误号


Creating an error number from stack trace

我在Android平台上用Java进行编码,但这对特定的编程语言来说并不是一个真正的问题。

所以。。。如果我的程序中发生错误,我会在try-catch语句中捕获它,我想创建一个错误号,显示给用户,让他有机会向我发送这个错误号。

问题是,我想以这样一种方式对错误进行编码,即我得到一个小数字(假设最多5位数字),稍后我可以对其进行解码,并可以准确地找出错误发生在哪个类、哪个方法和哪个行号。

我想这更多的是一个密码学问题,所以有人对我应该如何做有什么想法吗?

编辑

我想给每个文件、每个方法一个数字,并以某种方式使用这些值来创建错误号,但我不确定如何计算实际错误号,以便它能以另一种方式工作(正确解码)。

我会说,这是一种可怕的调试问题的方法。您要做的是设置一个枚举,该枚举指示错误代码+描述。这将类似于微软的

ERROR_SUCCESS
    0 (0x0)
    The operation completed successfully

等等。这样,你就可以向用户发布这些内容,从而(在某种程度上)减少收到的电子邮件/投诉量。混淆堆栈跟踪对您来说将是一场噩梦,因为您似乎将自己锁定在一个无法管理的报告系统中。随着代码库的增长和/或添加更多的自定义异常,您将很快破坏您的设计。此外,这是一个强大的模糊安全案例,其中有人可能会对您的流程进行逆向工程,并开始编写针对您的恶意代码。

更好的方法:

获得一个JIRA帐户,在那里更精通技术的用户可以发布错误和描述。我相信FogBugz也有这个功能,你可以上传这些类型的东西,它允许用户裁剪图像,专注于你想要的东西。