首页 新闻 搜索 专区 学院

C# System.IO.FileNotFoundException

0
悬赏园豆:5 [已解决问题] 解决于 2021-02-02 13:50

程序启动后第一次调用这个方法时会抛出异常。

引发的异常:“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);
        }
    }
}
小草上飞飞的主页 小草上飞飞 | 菜鸟二级 | 园豆:287
提问于:2021-02-02 11:01
< >
分享
最佳答案
0

FYI
https://stackoverflow.com/questions/1127431/xmlserializer-giving-filenotfoundexception-at-constructor/1177040#1177040
大致的翻譯是
"也許你無法相信,但你可以忽略這個例外,它並不影響後續代碼執行
我知道這個例外很擾人,網路上也有很多抱怨,但Microsoft 似乎沒有計畫處理它"

收获园豆:3
RosonJ | 老鸟四级 |园豆:4854 | 2021-02-02 11:12

大哥, 那你这个方法没有 抛出 异常. (^)

czd890 | 园豆:10438 (专家六级) | 2021-02-02 11:15

@czd890:
我是不建議照文章中說的完全忽略"FileNotFoundException"這個例外
單就建構子處理即可

RosonJ | 园豆:4854 (老鸟四级) | 2021-02-02 11:19

@RosonJ:

https://docs.microsoft.com/en-us/dotnet/api/system.xml.serialization.xmlserializer?view=netframework-4.5.2

这个意思是 不能序列化和反序列化List<T>吗?

小草上飞飞 | 园豆:287 (菜鸟二级) | 2021-02-02 13:45

@RosonJ: 我调用这个方法的时候,传参不是这样子的,肯定不会传个泛型进去

小草上飞飞 | 园豆:287 (菜鸟二级) | 2021-02-02 13:46

@小草上飞飞:
是的

RosonJ | 园豆:4854 (老鸟四级) | 2021-02-02 13:48
其他回答(1)
0

吧异常的详细信息贴出来

收获园豆:2
czd890 | 园豆:10438 (专家六级) | 2021-02-02 11:04

引发的异常:“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);
        }
    }

这么确定出来的

支持(0) 反对(0) 小草上飞飞 | 园豆:287 (菜鸟二级) | 2021-02-02 13:08

@小草上飞飞: 他不是抛出的未处理异常.

好比某个业务代码,类似这么个情况.

getSomething(string input){
    try{ return convert_v1(input); }catch(FileNotFoundException ex){//ignore}
    return convert_v2(input);
}

另外你可以调试一下的程序, 然后看debug 的output, 这种类型的exception有很多.
支持(0) 反对(0) czd890 | 园豆:10438 (专家六级) | 2021-02-02 13:13

@czd890: 没懂。。。

支持(0) 反对(0) 小草上飞飞 | 园豆:287 (菜鸟二级) | 2021-02-02 13:15
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册