[{"data":1,"prerenderedAt":254},["ShallowReactive",2],{"navigation":3,"post-\u002Fposts\u002F2012\u002Ftype-initialization-exception":20,"surroundPosts-\u002Fposts\u002F2012\u002Ftype-initialization-exception":241},[4,8,12,16],{"title":5,"path":6,"stem":7},"首页","\u002F","00.index",{"title":9,"path":10,"stem":11},"文章","\u002Fposts","01.posts",{"title":13,"path":14,"stem":15},"动态","\u002Fmoments","02.moments",{"title":17,"path":18,"stem":19},"关于","\u002Fabout","09.about",{"id":21,"title":22,"body":23,"class":220,"cover":220,"coverSize":220,"date":221,"description":29,"draft":222,"extension":223,"hideComments":222,"location":224,"meta":225,"navigation":226,"path":227,"readingTime":228,"seo":233,"sitemap":234,"stem":235,"tags":236,"time":239,"weather":220,"__hash__":240},"posts\u002Fposts\u002F2012\u002F20121215.type-initialization-exception.md","静态成员初始化异常的解决办法",{"type":24,"value":25,"toc":218},"minimark",[26,30,33,36,207,214],[27,28,29],"p",{},"今天遇到了这样一个问题，在调用某个类的静态方法时，产生了这样一个异常“未处理 TypeInitializationException “XXXXX”的类型初始值设定项引发异常。”然而，这个方法我是做了异常处理的，可就是无法捕获到这个异常的位置。后来发现，是由于这个类里的静态成员初始化产生了异常，这个要如何解决呢？",[27,31,32],{},"我们可以利用静态构造函数来解决这个问题，静态构造函数和实例构造函数之间的区别在于静态构造函数是由 CLR 调用执行的，所以静态构造函数只能是一个，同时不能有参数。",[27,34,35],{},"使用方法如下：",[37,38,43],"pre",{"className":39,"code":40,"language":41,"meta":42,"style":42},"language-csharp shiki shiki-themes material-theme-lighter github-light github-dark","public class Command\n{\n    private static SimpleDatabase simpleDatabase;\n    static Command() \u002F\u002F前面不能有修饰符\n    {\n        try\n        {\n            simpleDatabase = new SimpleDatabase(\"settings.db\", \"mima\");\n        }\n        catch\n        {\n            \u002F\u002F处理异常\n        }\n    }\n}\n","csharp","",[44,45,46,63,70,88,105,111,118,124,167,173,179,184,190,195,201],"code",{"__ignoreMap":42},[47,48,51,55,59],"span",{"class":49,"line":50},"line",1,[47,52,54],{"class":53},"sbsja","public",[47,56,58],{"class":57},"sG8yY"," class",[47,60,62],{"class":61},"sbgvK"," Command\n",[47,64,66],{"class":49,"line":65},2,[47,67,69],{"class":68},"sP7_E","{\n",[47,71,73,76,79,82,85],{"class":49,"line":72},3,[47,74,75],{"class":53},"    private",[47,77,78],{"class":53}," static",[47,80,81],{"class":61}," SimpleDatabase",[47,83,84],{"class":61}," simpleDatabase",[47,86,87],{"class":68},";\n",[47,89,91,94,98,101],{"class":49,"line":90},4,[47,92,93],{"class":53},"    static",[47,95,97],{"class":96},"sGLFI"," Command",[47,99,100],{"class":68},"()",[47,102,104],{"class":103},"sutJx"," \u002F\u002F前面不能有修饰符\n",[47,106,108],{"class":49,"line":107},5,[47,109,110],{"class":68},"    {\n",[47,112,114],{"class":49,"line":113},6,[47,115,117],{"class":116},"sVHd0","        try\n",[47,119,121],{"class":49,"line":120},7,[47,122,123],{"class":68},"        {\n",[47,125,127,131,135,138,140,143,147,151,153,156,159,162,164],{"class":49,"line":126},8,[47,128,130],{"class":129},"su5hD","            simpleDatabase ",[47,132,134],{"class":133},"smGrS","=",[47,136,137],{"class":133}," new",[47,139,81],{"class":61},[47,141,142],{"class":68},"(",[47,144,146],{"class":145},"sjJ54","\"",[47,148,150],{"class":149},"s_sjI","settings.db",[47,152,146],{"class":145},[47,154,155],{"class":68},",",[47,157,158],{"class":145}," \"",[47,160,161],{"class":149},"mima",[47,163,146],{"class":145},[47,165,166],{"class":68},");\n",[47,168,170],{"class":49,"line":169},9,[47,171,172],{"class":68},"        }\n",[47,174,176],{"class":49,"line":175},10,[47,177,178],{"class":116},"        catch\n",[47,180,182],{"class":49,"line":181},11,[47,183,123],{"class":68},[47,185,187],{"class":49,"line":186},12,[47,188,189],{"class":103},"            \u002F\u002F处理异常\n",[47,191,193],{"class":49,"line":192},13,[47,194,172],{"class":68},[47,196,198],{"class":49,"line":197},14,[47,199,200],{"class":68},"    }\n",[47,202,204],{"class":49,"line":203},15,[47,205,206],{"class":68},"}\n",[27,208,209,210,213],{},"注意， 在 catch 到异常之后，我刚开始还想 ",[44,211,212],{},"throw new Exception(\"SimpleDatabase初始化失败\")","，但是这样是不行的，依旧会在外层报出 “TypeInitializationException” 的异常。所以异常只能在静态构造函数内部处理掉，我的解决办法是，既然我不能打开自己建立的数据库，那么这个数据库文件肯定损坏了，或者并不是我原先生成的数据库，那我就重新建立一个数据库文件好了，因为我这个数据库文件里只是存放的一些简单配置，所以无妨。",[215,216,217],"style",{},"html pre.shiki code .sbsja, html code.shiki .sbsja{--shiki-light:#9C3EDA;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sG8yY, html code.shiki .sG8yY{--shiki-light:#E2931D;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sbgvK, html code.shiki .sbgvK{--shiki-light:#E2931D;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sGLFI, html code.shiki .sGLFI{--shiki-light:#6182B8;--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sutJx, html code.shiki .sutJx{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit}html pre.shiki code .sVHd0, html code.shiki .sVHd0{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit}html pre.shiki code .su5hD, html code.shiki .su5hD{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .smGrS, html code.shiki .smGrS{--shiki-light:#39ADB5;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sjJ54, html code.shiki .sjJ54{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":42,"searchDepth":65,"depth":65,"links":219},[],null,"2012-12-15",false,"md","宿舍",{},true,"\u002Fposts\u002F2012\u002Ftype-initialization-exception",{"text":229,"minutes":230,"time":231,"words":232},"2 min read",1.86,111600,372,{"title":22,"description":29},{"loc":227},"posts\u002F2012\u002F20121215.type-initialization-exception",[237,238],"技术",".NET","晚上","TZeRlPit3sTNSuXBopyj3_DIJggbee8Zo6i4UTJq9Cs",[242,248],{"title":243,"path":244,"stem":245,"date":246,"description":247,"children":-1},"Mono For Android 试用感想","\u002Fposts\u002F2012\u002Ftry-mono-for-android","posts\u002F2012\u002F20121217.try-mono-for-android","2012-12-17","昨天发现一个很厉害的工具，Mono，可以使用 C#来写 Android 程序，如果可以用 Visual Studio 来写 Android 程序，那简直太爽了！",{"title":249,"path":250,"stem":251,"date":252,"description":253,"children":-1},"未能加载文件或程序集 “XXXXXXX” 或它的某一个依赖项。试图加载格式不正确的程序的解决方法","\u002Fposts\u002F2012\u002Fcould-not-load-file-or-assembly","posts\u002F2012\u002F20121130.could-not-load-file-or-assembly","2012-11-30","好久没有写博客了。",1777579152223]