组件外如何扑捉自己定义的异常。

蝈蝈俊 2003-07-27 07:32:25
比如有如下一个.net组件,他有如下的方法。

using System;
namespace ClassLib
{
public class Class1
{
public Class1()
{
}

public void test()
{
throw new Exception("11111");
}
}
}

我在其他程序中调用这个组件,希望返回我自己写的异常.

private void button1_Click(object sender, System.EventArgs e)
{
try
{
Assembly a = Assembly.LoadFile(@"E:\我的文档\Microsoft\code\Test\Exception\ClassLib\bin\Debug\ClassLib.dll");
Type t = a.GetType( "ClassLib.Class1" );
MethodInfo FileMethod = t.GetMethod( "test");
Object o;
o = Activator.CreateInstance ( t );
FileMethod.Invoke(o,null);
}
catch(Exception ex)
{
MessageBox.Show(ex.Message.ToString());
}
}

但是这时候返回的不是我自己定义的异常,而是异常“调用的目标发生了异常。”

我如何才能实现返回组件内自己定义的异常呀??
注意: 这里要求是动态加载组件。而不是其他方法。

...全文
13 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
蝈蝈俊 2003-07-28
  • 打赏
  • 举报
回复
已经解决了

try
{
Assembly a = Assembly.LoadFile(@"E:\CASE\PBC\Exception\ClassLib\bin\Debug\ClassLib.dll");
Type t = a.GetType( "ClassLib.Class1" );
MethodInfo FileMethod = t.GetMethod( "test");
Object o;
o = Activator.CreateInstance ( t );
FileMethod.Invoke(o,null);
}
catch(Exception ex)
{
MessageBox.Show(ex.Message.ToString());
MessageBox.Show (ex.InnerException.Message.ToString());
}
蝈蝈俊 2003-07-27
  • 打赏
  • 举报
回复
项目中直接引用没有任何问题(扑捉到的异常也是需要的异常)。但是我的程序需要动态加载不同的组件(dll),没法采用项目引用。没办法。只有动态加载。但是动态加载返回的异常没法扑捉到。
蝈蝈俊 2003-07-27
  • 打赏
  • 举报
回复
我要动态加载.不能用在项目中引用的方式.因为不我知道我要加载那个dll。加载那个dll是配置文件中定的。
yaos 2003-07-27
  • 打赏
  • 举报
回复
你导入dll的方式错误造成的,直接在项目文件中引用就可以了

然后象普通的类一样使用
蝈蝈俊 2003-07-27
  • 打赏
  • 举报
回复
定义自己的类也不行呀。
我把这个组件改成下面代码,还是不行的。

using System;
namespace ClassLib
{
public class Class1
{
public Class1()
{
}

public void test()
{
throw new myException("11111");
}
}

public class myException:Exception
{
public myException(string message):base(message)
{
}
}
}
yaos 2003-07-27
  • 打赏
  • 举报
回复
可能程序执行路径的问题,你跟踪一下
yaos 2003-07-27
  • 打赏
  • 举报
回复
定义自己的异常处理类
项目名称 软件概要设计说明书 版本:V1.0 文 档 编 号 保 密 等 级 作 者 最后修改日期 审 核 人 最后审批日期 批 准 人 最后批准日期 修订记录 日期 版本 修订说明 修订人 目 录 1 引言 1 1.1 编写目的 1 1.1.1 作用 1 1.1.2 预期读者 1 1.2 编写背景 1 1.2.1 系统名称及版本号 1 1.2.2 任务提出者 1 1.2.3 任务承接者及实施者 1 1.2.4 使用者 1 1.2.5 与其它系统的关系 1 1.3 文档结构 1 1.4 电子文档编写工具 1 1.5 定义说明与符号规定 2 1.6 参考资料 2 2 系统概述 2 2.1 系统目标 2 2.2 设计原则 3 2.3 运行环境 3 2.3.1 硬件平台 3 2.3.2 软件平台 3 2.3.3 网络体系结构 3 2.4 应用软件整体结构概述 3 2.5 关键技术 4 3 数据库设计 4 4 代码设计 4 5 功能概述 4 5.1 功能模块命名原则 4 5.2 功能层次图 4 5.3 功能简介 4 5.4 部接口 4 6 用户界面设计 4 6.1 基本原则 4 6.2 设计概述 4 7 出错处理 5 7.1 出错信息设计 5 7.2 异常情况处理 5 引言 编写目的 作用 【说明】《软件概要设计说明书》是在《软件需求规格说明书》的基础上,通过我方与用户方反复沟通形成的。它必须充分反映《软件需求规格说明书》中的用户需求,如有改动必须征得用户的认可。它将作为项目验收时重要的的标准和依据。 从另一方面讲,它又是开发人员在下一阶段进行系统详细设计的纲领性文件,也是考核系统总体质量的重要技术文档。 预期读者 【说明】本文档的阅读对象是软件开发人员、业务规范设计人员、软件测试人员、系统安装人员及用户代表。 编写背景 系统名称及版本号 【说明】形如“北京市地方税务局管理信息系统V3.0”。其中,版本号的格式为“XX.XX”,X为阿拉伯数字,左“0”可省略。 任务提出者 【说明】指《工作说明书》中规定的我方领导机构或项目负责人。 任务承接者及实施者 【说明】指承担概要设计的负责人及工作人员名单。 使用者 【说明】适应对象和范围。主要指预期读者,也供有关领导审阅。 与其它系统的关系 【说明】在用户现有的及预期的整个应用系统中,给本系统准确定位。用示意图及相应的文字予以说明。 文档结构 【说明】章节划分原则、内容的取舍、重点的确定等。 电子文档编写工具 【说明】工具名、版本号、操作系统平台。使用多种工具时,应分别说明。形如: Microsoft Word 97 for Windows 95 Power-Designor 6.0 for Windows 95 PhotoShop 4.0 for Windows 95 Visio或Power Point 定义说明与符号规定 【说明】包括对专用术语及缩略语的解释、所用到的图(E-R图/功能层次图)中图符的表示与解释、屏幕界面中图标与按钮的表示与含义等。如在E-R图中,表示两个实体之间的关系时,我们定义了以下图符(部分举例): 终结符 基数(自左至右) 1 多 终结符 基数 存在性 说明(自左至右) 1 强制 必须存在且只能存在1个 多 强制 必须存在1个或多个 1 任选 可能存在1个,或没有 多 任选 可能存在1个或多个,或没有 参考资料 【说明】格式:作者,[版本号,]资料来源,日期 [,起止页号]。其中,《质量保证计划》与《需求规格说明书》是必选的参考资料。 系统概述 系统目标 【说明】开发意图、应用目标(总目标、分期目标)、作用范围、预期效益等。 设计原则 【说明】设计原则应包括: 质量管理应贯穿于整个设计之全过程。 对质量保证的承诺应落实到全体人员。 实际执行的过程中,必须符合项目自身的特点,体现个性差异,切实做到有的放矢。 运行环境 硬件平台 【说明】指出本系统对硬件设备的需求、我们选型的原则和依据、推荐的型号与配置、性能综述、技术优势、特殊约定等。 软件平台 【说明】使用操作系统的名称、生产厂家、版本号等。 使用数据库的名称、生产厂家、版本号等。如使用了多种数据库,则要说明如何 实现互连。 其它支撑软件:指出开发与运行时需要的工具软件的情况,如4GL等。 对于选用的各类软件,均应着重说清其技术特点、与国内同类产品的比较,明 确阐述我方选择的理由。 网络体系结构 【说明】写明网络设计原则、技术要求、产品选型、拓结构、基本部件与配件、传输介质、接口情况、通信协议、约束条件、结构化综合布线方案等。 画出网络结构图。图中应标出各类服务器与客户机、网管机、路由器、网关等的数量与分布;应反映出局域网、广域网及其互连的情况;如使用国内的公用数据网或Internet,也须具体标出。 用文字说明各个服务器/客户机的作用、配置与具体位置。例如:Oracle数据库服务 器1台,位于局信息中心,用于支撑征管业务信息处理、领导决策辅助支持、各征管业务科室的信息采集、查询及统计工作。它安装在IBM RS6000小型机上,操作系统是AIX 3.2。 说明拟采取的网络保护技术,如防火墙等。 应用软件整体结构概述 【说明】说明本系统的各层模块、公用模块的划分原则。 如果系统复杂而开发者又有比较多的技术积累,应说明其分层构造(如组件层、构件层与应用子系统层)。 对于大的系统,应画出体系结构图并予以说明。 关键技术 【说明】本系统采用了哪些关键技术,如算法、中间件、构件等。 指出使用了那些主要工具。 解释作出上述选择的理由。 说明这些关键技术在整体结构中的位置及内接口。 数据库设计 【说明】单独成册,见《数据库设计说明书模板》 代码设计 【说明】 给出系统设计中的代码的设计内容,代码设计包括系统代码(硬码)、系统代码(软码)、业务代码以及标准化代码等。对于硬码的引用需要在数据库设计的PDM中注明,对于其他代码的引用需要在数据字典或数据库设计中注明。 功能概述 功能模块命名原则 【说明】指出本系统的各层模块/公用模块的划分原则、命名原则、编号原则。并且需要指出在概要设计中的功能模块编号与《软件需求规格说明书》中的业务需求编号及性能需求编号之间的对应关系。 功能层次图 【说明】指明在输入信息转变为输出信息的过程中,为了满足用户的业务需求,应用软件必须完成的基本动作。采用自然语言叙述+树状功能图描绘的方式。由此确定系统最终的菜单结构。 功能简介 【说明】用一览表或框图的形式扼要说明每个模块的编号、名称和基本功能。用矩阵形式标明《软件需求规格说明书》中列出的各项功能需求与模块之间的对应关系。 部接口 用户界面设计 基本原则 【说明】指出基本风格、屏幕总体布局和输入/输出的常规手段。 设计概述 【说明】本节的内容也可以归入附录“设计与编程规范、惯例及约定”中,而不在这里 叙述。 一般地讲,界面设计应包括以下几项: □屏幕环境设置 □字型与字体 □颜色 □提示 □菜单(Menu) □按钮(Command Button) □图标 □列表框 □常用键 □Data Windows生成标准 □窗口定义 □日期类型 (特别要注意解决“千年虫”问题) □界面语言 □其它 出错处理 出错信息设计 【说明】出错信息、分析定位、提示信息。 异常情况处理 【说明】错误处理方案与帮助手段。

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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