C# 从堆栈跟踪创建错误号

C# 从堆栈跟踪创建错误号,c#,java,php,android,cryptography,C#,Java,Php,Android,Cryptography,我在Android平台上用Java编写代码,但对于特定的编程语言来说,这并不是一个真正的问题 所以。。。如果我的程序中发生错误,我会在try-catch语句中捕获它,我想创建一个错误号,并将其显示给用户,让他有机会向我发送此错误号 问题是,我希望以这样的方式对错误进行编码:我得到一个小的数字(比如说,最多5位数字),我稍后可以对其进行解码,并可以准确地找出错误发生在哪个类、哪个方法和哪个行号 我猜这更像是一个密码学问题,那么有人知道我应该如何做吗 编辑 我想给每个文件、每个方法指定一个数字,并以

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

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

问题是,我希望以这样的方式对错误进行编码:我得到一个小的数字(比如说,最多5位数字),我稍后可以对其进行解码,并可以准确地找出错误发生在哪个类、哪个方法和哪个行号

我猜这更像是一个密码学问题,那么有人知道我应该如何做吗

编辑


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

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

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

更好的方法:


获得一个JIRA帐户,在该帐户中,技术更熟练的用户可以发布错误和说明。我相信FogBugz也有这个功能,你可以上传这些类型的东西,它允许用户裁剪图像以关注你特别想要的东西。

为什么你不给自己发送一个堆栈跟踪,然后请求用户允许这样做呢?我意识到这并不能回答你的问题,但你考虑过其他替代方法吗?例如,向用户发送一条比数字更友好的错误消息,然后询问是否直接(通过电子邮件或web服务)向您提交堆栈跟踪。这可以说不那么复杂,但实际上可以提供更好的用户体验。而且你会有整个堆栈跟踪,而不仅仅是一个文件和行号。。。正如您自己建议的,更好的方法是为每个文件提供一个数字,以此类推。。。最好创建一个excel文件或sumthing,稍后当您收到错误代码时,可以将其签入该excel文件并根据您的需要获得结果。例如54321:未授权54用于特定类32用于其中的某些方法1用于该错误。我想这也取决于您的程序复杂性。它越高,错误代码产生的数字就越大。
ERROR_SUCCESS

    0 (0x0)

    The operation completed successfully