用了try-catch为何还会出错
//本想捕捉ArgumentNullException,却出现编译错误,应如何正确捕捉这个错误呢?
// Sample for String.Copy()
using System;
class Sample {
public static void Main() {
string str1 = "abc";
string str2 ;
try{
str2 = System.String.Copy(); // Error! 重载“Copy”方法未获取“0”参数
}
catch(ArgumentNullException)
{
}
System.Console.WriteLine("4) str2 = '{0}'", str2);
}
}
问题点数:20、回复次数:16Top
1 楼shiro(比卡丘)回复于 2005-04-03 23:50:21 得分 2
System.Console.WriteLine("4) str2 = '{0}'", str2);
这句放在tye里吧~,如果出现异常,那么 str2自然是没有实例,当然会出错了Top
2 楼saucer(思归)回复于 2005-04-03 23:57:54 得分 3
str2 = System.String.Copy(str1);Top
3 楼chenyuming2004(这辈子我算是废了)回复于 2005-04-04 00:26:44 得分 6
string.Copy()要求有一个参数,
你程序里面调用时没有参数,
语法错了,编译的时候就能检测出来,所以不能运行。
try,catch
是检测运行时的错误,
比如除数为0了,无法连接到数据库等等。。
Top
4 楼dk9761(King)回复于 2005-04-04 01:39:33 得分 2
try-catch检查的是运行时错误
而你说的是编译时错误Top
5 楼yuanarea(Sail before)回复于 2005-04-04 02:44:24 得分 0
System.Console.WriteLine("4) str2 = '{0}'", str2);
str2好想没有输出值,同上Top
6 楼Study_Now( ? )回复于 2005-04-04 08:22:13 得分 1
同意: chenyuming2004(这辈子我算是废了)Top
7 楼uscool(小小风)回复于 2005-04-04 08:56:44 得分 2
// Sample for String.Copy()
using System;
class Sample {
public static void Main() {
string str1 = "abc";
string str2 ;
try{
str2 = System.String.Copy(str1); // Error! 重载“Copy”方法未获取“0”参数
System.Console.WriteLine("4) str2 = '{0}'", str2);
}
catch(ArgumentNullException)
{
}
}
}Top
8 楼yuhang001(会有那么一天)回复于 2005-04-04 09:03:13 得分 2
str2= system.string.copy(st1)Top
9 楼lovvver(ElephantTalk.Bright)回复于 2005-04-04 09:09:45 得分 1
同意楼上。Top
10 楼conan19771130(残疾人程序员,学习第2门外语)回复于 2005-04-04 09:18:07 得分 1
try{
str2 = System.String.Copy(); // Error! 重载“Copy”方法未获取“0”参数
}
catch(Exception err)
{
MessageBox.Show(err.Massege);
}
System.Console.WriteLine("4) str2 = '{0}'", str2);
}
Top
11 楼zhongwanli(㊣【为了老婆,二次重构____然后升★★】㊣)回复于 2005-04-04 09:21:40 得分 0
^_^Top
12 楼xxuu503(中国没有prison break只是因为the company不让拍)回复于 2005-04-04 09:29:19 得分 0
catch(ArgumentNullException)
改为catch(ArgumentNullException ex)
呵呵,捕捉也是要捕捉一个对象地,不是直接catch一个类就可以了Top
13 楼xxuu503(中国没有prison break只是因为the company不让拍)回复于 2005-04-04 09:30:15 得分 0
晕死,楼上的各位怎么答案都这么古怪呢?Top
14 楼dongweicq()回复于 2005-04-04 09:34:28 得分 0
using System;
class Sample {
public static void Main() {
string str1 = "abc";
string str2 ;
try
{
str2 = System.String.Copy(); // Error! 重载“Copy”方法未获取“0”参数
System.Console.WriteLine("4) str2 = '{0}'", str2);
}
catch(Exception E)
{
Messagebox(E.message)
}
}
}这样可以捕获吧Top
15 楼tengjian1981(新的一年又来到)回复于 2005-04-04 10:15:00 得分 0
同意楼上Top
16 楼lp7083937(石头)回复于 2005-04-05 00:07:32 得分 0
谢谢,我明白了。
尤其感谢"这辈子我算是废了",解释的很清楚;不过你的名字很让人伤感,想开点,责任不能全由你担当。
"思归"也是个称职的版主!
还有一问:要不要写异常处理是根据什莫来决定的。Top




