方案讨论:如何自定义并实现错误与例外Exception处理对象,并建立里统一的ErrorMsg

阿拉丁 2003-09-15 12:13:32
问题如题,我想参考一下大家在.net中的做法,以及ErrorMsg定义的一些心得。最好能够给点例子。也可以直接联系我(在线)。
Msn:ar_ding123@hotmail.com
QQ:27164571
...全文
61 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
阿拉丁 2003-09-20
  • 打赏
  • 举报
回复
谢谢大家的参与,谢谢saucer(思归) 。
通过重新安装Installer, System.Security.SecurityException问题解决了。
最终我将Exception Management Appilcation Blocks中的部分代码添加到自定义的Exception Class.因为我发现有些Exception EMAB不能捕获,而Global可以通过Context捕获。以后有时间了再研究研究。
saucer 2003-09-16
  • 打赏
  • 举报
回复
if you read the

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/emab-rm.asp

carefully, at the end of the article;

"
Does the reduced privileges of the ASPNET account, used to run the ASP.NET worker process, cause problems for the exception manager when I'm using it within an ASP.NET Web application?
...
To overcome this problem, the RTM release of the Exception Manager creates Event sources at installation time when administrative rights means that there is no problem creating Event sources
...."
saucer 2003-09-16
  • 打赏
  • 举报
回复
http://support.microsoft.com/default.aspx?kbid=306355
saucer 2003-09-16
  • 打赏
  • 举报
回复
did you run the installer?

1. see
HOW TO: Create Custom Error Reporting Pages in ASP.NET by Using Visual C# .NET


2. or create a new key in registry under:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application]
阿拉丁 2003-09-16
  • 打赏
  • 举报
回复
private void login(string strOpcode,string strPwd)
{
try
{
int intA = Convert.ToInt32("a");//故意引起exception
}
catch( Exception err )
{
throw new LogonException("convert error ",err);
}
}
private void ButtonBase_login_Click(object sender, System.EventArgs e)
{
try
{
login(strOpcode,strPwd);
}
catch( LogonException err )
{
ExceptionManager.Publish(err);
}
}
------------------LogonExceoption定义--------------------
using System;
using System.Runtime.Serialization;
using Microsoft.ApplicationBlocks.ExceptionManagement;

namespace ExceptionManagementQuickStartSamples
{
[Serializable]
public class LogonException : BaseApplicationException
{
// Default constructor
public LogonException() : base()
{
}
// Constructor with exception message
public LogonException(string message) : base(message)
{
}
// Constructor with message and inner exception
public LogonException(string message, Exception inner) : base(message,inner)
{
}
// Protected constructor to de-serialize data
protected LogonException(SerializationInfo info, StreamingContext context) : base(info, context)
{
}
}
}
阿拉丁 2003-09-16
  • 打赏
  • 举报
回复
saucer(思归) 你好,谢谢指点先!
我用了ExceptionManagermentApplicationBlock,遇到了这个错误: System.Security.SecurityException: Requested registry access is not allowed.
我参照你在http://expert.csdn.net/Expert/topic/2247/2247480.xml?temp=2.381533E-02中推荐的这篇文章http://support.microsoft.com/?id=329291,
创建ASPNET用户成功,并且用他提供的例子能够将信息以ASPNET写入事件查看器。

但是回头再用ExceptionManagermentApplicationBlock,仍然是相同错误:
Exception Details: System.Security.SecurityException: Requested registry access is not allowed.

Source Error:

Line 659: if (!EventLog.SourceExists(applicationName))
Line 660: {
Line 661: EventLog.CreateEventSource(applicationName, logName);
Line 662: }
Line 663: }
我实在是搞不懂了,能不能帮我看看呀,再次谢谢,代码附上
saucer 2003-09-16
  • 打赏
  • 举报
回复
use Exception Management Application Block
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/emab-rm.asp
阿拉丁 2003-09-15
  • 打赏
  • 举报
回复
对于错误代码ErrorMsg方面定义,大家有什么好的分类方法可供参考?
阿拉丁 2003-09-15
  • 打赏
  • 举报
回复
Jouzen() :
发送错误到日志中,这个我已经实现,将所有未捕获的的错误记录下来。

elfzzf(Aray ☆感觉在飞☆~~):
我的想法类似,我想定义一个myException:Exception,来处理catch到的一些例外,如果是未定义的例外,你的想法很好,用ShowDetail和SendMail。我还想将错误信息统一定义在XML文件中,可以随时扩充,以及处理多国语问题。
你能不能将你的那个类发给我参考参考?到时候写好了我也发给你一份。谢谢!
Jouzen 2003-09-15
  • 打赏
  • 举报
回复
发送错误到日志
elfzzf 2003-09-15
  • 打赏
  • 举报
回复
定议一个错误类,常见错误与提示就用自已的话包装一下,不可预知的就提供一个查看详细错主的连接钮,并提供自动以邮件形式提交错误的功能 我是这样搞的:) ^_^
楼主有什么好法子?

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧