程序启动后第一次调用这个方法时会抛出异常。
引发的异常:“System.IO.FileNotFoundException”(位于 mscorlib.dll 中)
public class CloneHelper
{
public static List<T> Clone<T>(List<T> realObj)
{
using(Stream strean = new MemoryStream()).
{
XmlSerializer serializer = new XmlSerializer(typeof(List<T>));//异常抛出在这一行
serializer.Serializer(stream,realObject);
stream.Seek(0,SeekOrigin,Begin);
return (List<T>)serializer.Deserializer(stream);
}
}
}
FYI
https://stackoverflow.com/questions/1127431/xmlserializer-giving-filenotfoundexception-at-constructor/1177040#1177040
大致的翻譯是
"也許你無法相信,但你可以忽略這個例外,它並不影響後續代碼執行
我知道這個例外很擾人,網路上也有很多抱怨,但Microsoft 似乎沒有計畫處理它"
大哥, 那你这个方法没有 抛出
异常. (^)
@czd890:
我是不建議照文章中說的完全忽略"FileNotFoundException"這個例外
單就建構子處理即可
@RosonJ:
这个意思是 不能序列化和反序列化List<T>
吗?
@RosonJ: 我调用这个方法的时候,传参不是这样子的,肯定不会传个泛型进去
@小草上飞飞:
是的
吧异常的详细信息贴出来
引发的异常:“System.IO.FileNotFoundException”(位于 mscorlib.dll 中)
捕获不到异常详细信息
我是通过 在方法里
public static List<T> Clone<T>(List<T> realObj)
{
using(Stream strean = new MemoryStream()).
{
Console.WriteLine(111);
XmlSerializer serializer = new XmlSerializer(typeof(List<T>));//异常抛出在这一行
Console.WriteLine(222);
serializer.Serializer(stream,realObject);
stream.Seek(0,SeekOrigin,Begin);
return (List<T>)serializer.Deserializer(stream);
}
}
这么确定出来的
@小草上飞飞: 他不是抛出的未处理异常.
好比某个业务代码,类似这么个情况.
getSomething(string input){
try{ return convert_v1(input); }catch(FileNotFoundException ex){//ignore}
return convert_v2(input);
}
另外你可以调试一下的程序, 然后看debug 的output, 这种类型的exception有很多.
@czd890: 没懂。。。