关于异常,求解

laochai2000 2006-11-17 01:06:13
问题如下例所示:

class A
{
try
{
//引发异常的代码
}
catch
{
B b = new B();
}
}
class B
{
public B()
{
//在这里能否访问到A中引发的异常堆栈?
}
}

只是想学学知识,不是要解决什么实际问题,所以:
1.请避免讨论代码的实际意义(因为本来就没有:) )
2.请不要建议我修改或者增加Class A的代码
3.如果您认为可以或者不可以,都请您尽可能详细的解释一下原理。
4.可以义务帮顶,哈哈

以上,谢谢!
...全文
431 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
股神 2006-11-20
  • 打赏
  • 举报
回复
帮顶
liujia_0421 2006-11-18
  • 打赏
  • 举报
回复
继续关注,楼主如果解决了,别忘和大家分享一下...
bigrongshu 2006-11-18
  • 打赏
  • 举报
回复
楼主去这个地方下载视频看看,里面讲的很清楚

http://www.microsoft.com/china/msdn/events/webcasts/shared/webcast/episode.aspx?newsID=1242570
maoyanyu 2006-11-18
  • 打赏
  • 举报
回复
楼主高,帮顶
helonpeng 2006-11-18
  • 打赏
  • 举报
回复
在执行B类时A.a和aa就要被回收了,你可以将A.a和aa想办法声明成手工回收,你通过在B中执行回收垃圾的机制有可能能访问到!你试试吧
fowolf 2006-11-17
  • 打赏
  • 举报
回复
用b的构造函数传一下参数
zhaidafan 2006-11-17
  • 打赏
  • 举报
回复
class A
{
int a;
public A()
{
int aa;
B b = new B();
}
}

class B
{
B()
{
//在这里能访问A.a和aa吗?
}
}

楼主,你要是连上面的问题都回答不上来,那还是先学学基础知识再说吧。
liujia_0421 2006-11-17
  • 打赏
  • 举报
回复
楼主的这个问题问得很有水平啊....

关注....
spunder 2006-11-17
  • 打赏
  • 举报
回复
帮顶,顺便学写一下
laochai2000 2006-11-17
  • 打赏
  • 举报
回复
真的没有什么办法么?
laochai2000 2006-11-17
  • 打赏
  • 举报
回复
To solsolsol(秋水萧萧) : 异常堆栈和一个局部变量不好作比吧。
To bigrongshu(Simple life @ Innovation) : 不带参数是不能访问异常对象,获得异常信息的,更别说传递了 这句话有出处吗?
To cugliang(雨帘) : 您是最幽默的人。

再次说明一下,我的目的是想深入一点的了解一下 .NET 中的异常堆栈,是否可以通过类似
“反射“之类的手段对其直接进行访问。
我是在看到StackTrace的时候突然冒出的想法,用Environment.StackTrace 属性以逆向时间顺序列出方法调用,即首先描述最近的方法调用,然后为堆栈上的每个方法调用都列出一行堆栈跟踪信息。那么异常堆栈是否也存在直接进行访问的可能呢?
cugliang 2006-11-17
  • 打赏
  • 举报
回复
你连语言基础都还没学会
bigrongshu 2006-11-17
  • 打赏
  • 举报
回复
不明白楼主想干什么
catch
{}

不带参数是不能访问异常对象,获得异常信息的,更别说传递了
solsolsol 2006-11-17
  • 打赏
  • 举报
回复
这样说一下
class A
{
int i = 1;
B b = new B();

}
class B
{
public B()
{
//我在这里能访问i么??
}
}
solsolsol 2006-11-17
  • 打赏
  • 举报
回复
Exception error = Server.GetLastError();
是要这个么?
liujia_0421 2006-11-17
  • 打赏
  • 举报
回复
有意思...

没研究过...

关注一下...
laochai2000 2006-11-17
  • 打赏
  • 举报
回复
大家不觉得“不可以“三个字真的很苍白吗?呼唤达人啊~~~~
我觉得在catch块执行结束以前异常堆栈是客观存在的,比如你在catch最后写一个throw
这个异常还是会继续向上抛出,那么我可不可以通过某种方式直接访问到异常堆栈呢?
junsir 2006-11-17
  • 打赏
  • 举报
回复
当然得传过去了
不传过去
Class B如何访问。
不可以。
laochai2000 2006-11-17
  • 打赏
  • 举报
回复
要求无参数的catch!
laochai2000 2006-11-17
  • 打赏
  • 举报
回复
晕了,要求都白写了,各位怎么都不看啊?传过去我还用问啊?
加载更多回复(4)

110,536

社区成员

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

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

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