求教以下标注的2句作用?
using System;
class Test
{
static void F(){
try{
G();
}
catch(Exception e){
Console.WriteLine("Exception in F:"+e.Message);
e=new Exception("F"); //1,这句好像程序根本就读不到?
throw; //2,这句好像程序也根本就读不到?运行的结果为什么都是G,没有F呢,是不是先抛出G,而且解决了,就不继续抛出F了?
}
}
static void G(){
throw new Exception("G");
}
static void Main(){
try{
F();
}
catch(Exception e){
Console.WriteLine("Exception in Main:"+e.Message);
}
}
}
3。 e=new Exception("F");
throw;
这两句是不是等价与throw new Exception("F");如果我把程序中的上2句换成这句,程序显示就不同了,那就说明不等价,那么他们有什么区别呢?
using System;
class Test
{
static void F(){
try{
G();
}
catch(Exception e){
Console.WriteLine("Exception in F:"+e.Message);
e=new Exception("F"); //1,这句好像程序根本就读不到?
throw; //2,这句好像程序也根本就读不到?运行的结果为什么都是G,没有F呢,是不是先抛出G,而且解决了,就不继续抛出F了?
}
}
static void G(){
throw new Exception("G");
}
static void Main(){
try{
F();
}
catch(Exception e){
Console.WriteLine("Exception in Main:"+e.Message);
}
}
}
3。 e=new Exception("F");
throw;
这两句是不是等价与throw new Exception("F");如果我把程序中的上2句换成这句,程序显示就不同了,那就说明不等价,那么他们有什么区别呢?
解决方案 »
- 怪哉!!! 什么叫做“自定义工具错误”,WHY???
- 请问各位大虾一个关于DELEGATE委托的问题啊。谢谢啦
- 为什么拖放的和用代码生成的PictureBox设置相同的Size,但是显示出来的大小不一样
- 用户控件引用问题
- 各位英雄好汉给位走过路过的高手,请教!---c#调用vc写的dll的问题
- 指定COMBOBOX控件默认值时出现的错误:指定的参数已超出有效值的范围
- 100分,求高手解决,分不够再加!
- C#调用DELPHI编写的DLL,无法找到入口点!!!!
- 如何在datatable中添加复制一行数据并添加到表的最后一行
- 发布的网页出错误:链不上数据库
- 提取数据!!!!急.......
- 请问各位 用VS2005 作的 C#小游戏 怎样打包 才能在其他没装VS 的电脑上玩?
2. throw后面什么都不写表示,重写抛出异常,你所catch的异常,而不是你新new出来的异常
3. 不等价 throw后面什么都不写抛出的是原来的异常类型,throw new ....抛出的则是你new出来的异常类型,建议直接用throw,这样不会导致异常类型的信息丢失
throw e; //抛出你封装的错误信息
就是对的
这两句不是等价关系,而是先后并且必须这样的关系,如果你要抛出你自定义的错误的话。