日期:2014-05-18  浏览次数:20810 次

200求教:通过反射调用方法时,如何捕捉方法抛出的异常
如题.

请调手指教.

------解决方案--------------------
mark,sf

------解决方案--------------------
直接将Method Invoke放在try-catch块里不行么?
------解决方案--------------------
沒用過反射,學習
------解决方案--------------------
1、反射用于描述类型本身,而不是实例/对象,但是可以通过得到的信息操作对象(比如调用一个方法)
2、.NET能够使用反射如此轻易的描述类型的原因是代码在编译时会把自身的“元数据”直接编译进程序集(可移植可执行/PE文件)内的尾部区域(元数据表),组织形式可以看这里:
ms-help://MS.MSDNQTR.2003FEB.2052/cpguide/html/cpconMetadataSelfDescribingComponents.htm
这里有timmy3310的.Net中的反射使用入门(主要是使用方面的):http://search.csdn.net/Expert/topic/2214/2214138.xml
另外《.NET框架程序设计》讲的很详细
3、异常处理和反射没有直接的关系,使用反射的技巧调用对象方法和通常的调用方法在原理上也一样,不过弹出的异常是TargetInvocationException(假如确实是被调用方法内的异常),可以通过InnerException得到原始异常,这个也和平时处理的方法类似
------解决方案--------------------
UP
------解决方案--------------------
学习了~
------解决方案--------------------
jf
------解决方案--------------------
try
{
}
catch(Exception ex)
{
}
------解决方案--------------------
关注,学习
------解决方案--------------------
InnerException
------解决方案--------------------

------解决方案--------------------
学习一下
------解决方案--------------------
jf
------解决方案--------------------
LZ把解决方法贴出来看看吧
------解决方案--------------------
JF
------解决方案--------------------
try 

}
catch()

}
------解决方案--------------------
顶,这个问题我也问过几次,但都没有答案就结贴了,现在有了,谢谢
------解决方案--------------------

------解决方案--------------------
既然LZ已经解决问题。

那我就是纯顶一下。。。
------解决方案--------------------
OK,解决了. 
ex.InnerException
用这个就可以了. 
解决几天来的一个心病.又可以去编写优雅的代码了. 
顶都还有分.
-----------------------------

看了lz的问题和这个回复........发现..
1....lz分太多......
2....lz的分真的很多....

用都 ex ...可见你就知道如何...catch 异常了...

而 Exception 是有 InnerException 来表示引发此异常的异常的..
如果 InnerException 为 null..那么此异常是最原始的异常.
------解决方案--------------------
解决几天来的一个心病
---------------------
还发现..........
1...lz时间很多....
2....lz时间真的很多....
3...lz身体不太健康....

^_^