Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
.NETÒì³£Éè¼ÆÔ­Ôò
 
À´Ô´£ºInfq ×÷Õß: Jonathan Allen ·¢²¼ÓÚ£º2016-12-27
  2181  次浏览      32
 

Òì³£ÊÇʹÓÃ.NETʱ±ØÈ»»áÓöµ½µÄÎÊÌ⣬µ«ÊÇ£¬ÓÐÌ«¶àµÄ¿ª·¢ÈËԱûÓдÓAPIÉè¼ÆµÄ½Ç¶È¿¼ÂÇÕâ¸öÎÊÌâ¡£Ôڴ󲿷ֹ¤×÷ÖУ¬ËûÃÇ×ÔʼÖÁÖÕ¶¼ÖªµÀÐèÒª²¶»ñʲôÒì³£ÒÔ¼°ÄÄЩÒì³£ÐèҪдÈëÈ«¾ÖÈÕÖ¾¡£Èç¹ûÄãÉè¼ÆÁË¿ÉÒÔÈÃÄãÕýȷʹÓÃÒì³£µÄAPI£¬Ôò¿ÉÒÔÏÔÖø¼õÉÙÐÞ¸´È±ÏݵÄʱ¼ä¡£

Ë­µÄ´í£¿

Òì³£Éè¼Æ±³ºóµÄ»ù±¾ÀíÂÛʼÓÚÕâÑùÒ»¸öÎÊÌ⣬¡°Ë­µÄ´í£¿¡±ÎªÁË·½±ã±¾ÎĵÄÌÖÂÛ£¬Õâ¸öÎÊÌâµÄ´ð°¸½«×ÜÊÇÒÔÏÂÈýÕßÖ®Ò»£º

1.¿â

2.Ó¦ÓóÌÐò

3.»·¾³

µ±ÎÒÃÇ˵¡°¿â¡±ÓÐÎÊÌ⣬ÎÒÃÇÊÇÖ¸µ±Ç°Ö´ÐеÄij¸ö·½·¨ÓÐÄÚ²¿È±ÏÝ¡£ÔÚÕâÖÖÇé¿öÏ£¬¡°Ó¦ÓóÌÐò¡±Êǵ÷Óÿⷽ·¨µÄ´úÂ루ÕâÓеã»ìÔÓÄÑ·Ö£¬ÒòΪ¿âºÍÓ¦ÓóÌÐò´úÂë¿ÉÄÜÔÚÏàͬµÄ³ÌÐò¼¯ÖС££©×îºó£¬¡°»·¾³¡±ÊÇÖ¸Ó¦ÓóÌÐòÖ®ÍâÒ»ÇÐÎÞ·¨¿ØÖƵĶ«Î÷¡£

¿âȱÏÝ

×îµäÐ͵ĿâȱÏÝÊÇNullReferenceException¡£¶Ô¿â¶øÑÔ£¬ËüûÓÐÈκÎÀíÓÉÅ׳ö¿ÉÒÔ±»Ó¦ÓóÌÐò¼ì²âµ½µÄ¿ÕÒýÓÃÒì³£¡£Èç¹ûÓöµ½Á˿գ¬Ôò¿â´úÂëÓ¦¸Ã×ÜÊÇÅ׳öÒ»¸ö¸ü¾ßÌåµÄÒì³££¬ËµÃ÷ʲôΪ¿ÕÒÔ¼°ÈçºÎ¾ÀÕýÕâ¸öÎÊÌâ¡£¶ÔÓÚ²ÎÊý¶øÑÔ£¬ÕâÏÔÈ»ÊÇÒ»¸öArgumentNullExceptionÒì³£¡£¶øÈç¹ûÊôÐÔ»ò×Ö¶ÎΪ¿Õ£¬ÔòInvalidOperationExceptionͨ³£¸üºÏÊÊ¡£

¸ù¾Ý¶¨Ò壬ÈκαíÃ÷¿âȱÏݵÄÒì³£¶¼ÊǸÿâÖÐÐèÒªÐÞ¸´µÄBug¡£ÄDz¢²»ÊÇ˵ӦÓóÌÐò´úÂëûÓÐBug£¬¶øÊÇ˵¿âµÄBugÐèÒªÊ×ÏÈÐÞ¸´¡£Ö»ÓÐÄÇÑù£¬²ÅÄÜÈÃÓ¦ÓóÌÐò¿ª·¢ÈËÔ±ÖªµÀËûÒ²·¸ÁË´íÎó¡£

ÕâÑù×öµÄÔ­ÒòÊÇ£¬¿ÉÄÜÓÐÐí¶àÈËʹÓÃͬÑùµÄ¿â¡£Èç¹ûÒ»¸öÈËÔÚ²»Ó¦¸Ã´«Èë¿ÕµÄµØ·½´íÎ󵨴«ÈëÁ˿գ¬ÔòÆäËûÈËÏë±ØÒ²»á·¸Í¬ÑùµÄ´íÎó¡£°ÑNullReferenceExceptionÌæ»»ÎªÒ»¸ö¿ÉÒÔÇåÎúµØÏÔʾ³öʲô³ö´íµÄÒì³££¬Ó¦ÓóÌÐò¿ª·¢ÈËÔ±Á¢¼´¾Í¿ÉÒÔÖªµÀʲô³ö´íÁË¡£

¡°³É¹¦Ö®ºË£¨The Pit of Success£©¡±

Èç¹ûÄã¶Á¹ýÓйØ.NETÉè¼ÆÄ£Ê½µÄÔçÆÚÎÄÏ×£¬ÄÇôÄã»á¾­³£Åöµ½¶ÌÓï¡°³É¹¦Ö®ºË¡±¡£Æä»ù±¾Ë¼ÏëÊÇÕâÑùµÄ£ºÈôúÂëÈÝÒ×±»ÕýȷʹÓ㬲»ÈÝÒ×±»ÎóÓ㬲¢È·±£Òì³£¿ÉÒÔ¸æËßÄãÄÄÀï³ö´íÁË¡£×ñÑ­Õâ¸öAPIÉè¼ÆÀíÄ¼¸ºõ¿ÉÒÔ±£Ö¤¿ª·¢ÈËÔ±Ò»¿ªÊ¼¾Í±àд³öÕýÈ·µÄ´úÂë¡£

Õâ¾ÍÊÇΪʲôһ¸öûÓÐ×¢Ê͵ÄNullReferenceExceptionÊÇÈç´ËÔã¸â¡£³ýÁ˶ÑÕ»¸ú×ÙÍ⣨¿ÉÄܷdz£ÉîÈë¿â´úÂ룩£¬Ã»ÓÐÈκÎÐÅÏ¢¿ÉÒÔ°ïÖú¿ª·¢ÈËԱȷ¶¨ËûÃÇÄÄÀï×ö´íÁË¡£ÁíÒ»·½Ã棬ArgumentNullExceptionºÍInvalidOperationExceptionÔòΪ¿â×÷ÕßÌṩÁËÒ»ÖÖ·½·¨£¬ÈÃËûÃÇ¿ÉÒÔÏòÓ¦ÓóÌÐò¿ª·¢ÈËԱ˵Ã÷ÈçºÎÐÞ¸´ÎÊÌâ¡£

ÆäËû¿âȱÏÝ

ÏÂÒ»¸ö¿âȱÏÝÊÇArithmeticExceptionϵÁУ¬°üÀ¨DivideByZeroException¡¢FiniteNumberExceptionºÍOverflowException¡£ÔٴΣ¬Õâ×ÜÊÇÒâζ×ſⷽ·¨µÄÄÚ²¿È±ÏÝ£¬¼´Ê¹ÄǸöȱÏÝÖ»ÊÇÒ»¸öȱʧµÄ²ÎÊýÓÐЧÐÔ¼ì²é¡£

¿âȱÏݵÄÁíÍâÒ»¸öÀý×ÓÊÇIndexOutOfRangeException¡£´ÓÓïÒåÉϽ²£¬ËüºÍArgumentOutOfRangeExceptionûʲô²»Í¬£¬²Î¼ûIList.Item£¬µ«ËüÖ»ÊÊÓÃÓÚÊý×éË÷ÒýÆ÷¡£ÓÉÓÚÓ¦ÓóÌÐò´úÂëͨ³£²»»áʹÓÃÂãÊý×飬ËùÒÔÕâÒâζ×Å£¬×Ô¶¨ÒåµÄ¼¯ºÏÀà»áÓÐBug¡£

×Ô.NET 2.0ÒýÈë·ºÐÍÁбíÒÔÀ´£¬ArrayTypeMismatchException¾ÍºÜÉÙ¼ûÁË¡£´¥·¢¸ÃÒì³£µÄÇé¿öÏ൱¹ÖÒì¡£¸ù¾ÝÎĵµ£º

µ±ÏµÍ³ÎÞ·¨½«Êý×éÔªËØ×ª»»³ÉÉùÃ÷µÄÊý×éÀàÐÍʱ»áÅ׳öArrayTypeMismatchException¡£
ÀýÈ磬һ¸öStringÀàÐ͵ÄÔªËØÎÞ·¨´æÈëÒ»¸öInt32Êý×飬ÒòΪÕâÁ½ÖÖÀàÐÍÖ®¼äÎÞ·¨×ª»»¡£
Ó¦ÓóÌÐòÒ»°ãÊDz»ÐèÒªÅ׳öÕâÀàÒì³£µÄ¡£

Òª×öµ½ÕâÒ»µã£¬Ç°ÃæÌáµ½µÄInt32Êý×鱨Ðë´æÈëÒ»¸öObject[]ÀàÐ͵ıäÁ¿¡£Èç¹ûÄãʹÓÃÁËԭʼÊý×飬Ôò¿âÐèÒª¶Ô´Ë½øÐмì²é¡£ÓÉÓÚÕâ¸öÔ­Òò¼°ÆäËûÐí¶à·½ÃæµÄ¿¼ÂÇ£¬×îºÃÊDz»ÒªÊ¹ÓÃԭʼÊý×飬¶øÊǽ«ËüÃÇ·â×°µ½Ò»¸öºÏÊʵļ¯ºÏÀàÖС£

ͨ³££¬ÆäËûת»»ÎÊÌâÊÇͨ¹ýInvalidCastExceptionÒì³£·´Ó³³öÀ´µÄ¡£»Øµ½ÎÒÃǵÄÖ÷Ì⣬ÀàÐͼì²éÓ¦¸ÃÒâζ×ÅÓÀÔ¶²»»áÅ׳öInvalidCastExceptionÒì³££¬¶øÊÇÏòµ÷ÓÃÕßÅ׳öArgumentException»òInvalidOperationExceptionÒì³£¡£

MemberAccessExceptionÊÇÒ»¸ö»ùÀ࣬º­¸ÇÁ˸÷ÖÖ»ùÓÚ·´ÉäµÄ´íÎó¡£³ýÁËÖ±½ÓʹÓ÷´ÉäÍ⣬COM»¥²Ù×÷ºÍ¶¯Ì¬¹Ø¼ü´ÊµÄ²»ÕýȷʹÓö¼»á´¥·¢¸ÃÒì³£¡£

Ó¦ÓóÌÐòȱÏÝ

µäÐ͵ÄÓ¦ÓóÌÐòȱÏÝÊÇArgumentException¼°Æä×ÓÀàArgumentNullExceptionºÍArgumentOutOfRangeException¡£ÒÔÏÂÊÇÆäËûÄã¿ÉÄܲ»ÖªµÀµÄ×ÓÀࣺ

System.ComponentModel.InvalidAsynchronousStateException

System.ComponentModel.InvalidEnumArgumentException

System.DuplicateWaitObjectException

System.Globalization.CultureNotFoundException

System.IO.Log.ReservationNotFoundException

System.Text.DecoderFallbackException

System.Text.EncoderFallbackException

ËùÓÐÕâЩ¶¼Ã÷È·µØ±íÃ÷Ó¦ÓóÌÐòÓдíÎ󣬶øÎÊÌâ¾Í³öÔÚµ÷Óÿⷽ·¨µÄÐÐÀï¡£ÄÇÌõÓï¾äµÄÁ½¸ö²¿·Ö¶¼ºÜÖØÒª¡£¿¼ÂÇÏÂÃæµÄ´úÂ룺

foo.Customer = null;
foo.Save();

Èç¹ûÉÏÊö´úÂëÅ׳öÁËÒ»¸öArgumentNullExceptionÒì³££¬ÄÇôӦÓóÌÐò¿ª·¢ÈËÔ±»áºÜÀ§»ó¡£ËüÓ¦¸ÃÅ׳öÒ»¸öInvalidOperationExceptionÒì³££¬ËµÃ÷µ±Ç°ÐÐ֮ǰÓÐʲôµØ·½³öÁËÎÊÌâ¡£

ÒÔÒ쳣ΪÎĵµ

µäÐ͵ijÌÐòÔ±²»ÔĶÁÎĵµ£¬ÖÁÉÙ²»»áÊ×ÏÈÔĶÁÎĵµ¡£Ïà·´£¬Ëû»òËý»áÔĶÁ¹«¹²API£¬±àдһЩ´úÂë²¢ÔËÐС£Èç¹û´úÂë²»ÄÜÕý³£ÔËÐУ¬¾Íµ½Stack OverflowÉÏËÑË÷Òì³£ÐÅÏ¢¡£Èç¹û¸Ã³ÌÐòÔ±¹»ÐÒÔË£¬ÔòºÜÈÝÒ×ÔÚÄÇÀïÕÒµ½´ð°¸ÒÔ¼°Ö¸ÏòÕýÈ·ÎĵµµÄÁ´½Ó¡£µ«¼´Ê¹Èç´Ë£¬³ÌÐòÔ±ÃǺܿÉÄÜÒ²²»»áÕæÕýµØ¶ÁËü¡£

ÄÇô£¬×÷Ϊ¿â×÷Õߣ¬ÎÒÃÇÈçºÎ½â¾öÕâ¸öÎÊÌ⣿µÚÒ»²½ÊÇÖ±½Ó½«²¿·ÖÎĵµ¸´ÖƵ½Òì³£ÖС£

¸ü¶à¶ÔÏó״̬Òì³£

InvalidOperationExceptionÓÐÒ»¸öÖÚËùÖÜÖªµÄ×ÓÀàObjectDisposedException¡£ËüµÄÓÃ;ÏÔ¶øÒ×¼û£¬È»¶ø£¬ºÜÉÙÓпÉÏú»ÙÀà»áÍü¼ÇÅ׳öÕâ¸öÒì³£¡£Èç¹ûÍü¼ÇÁË£¬Ôò³£¼ûµÄ½á¹ûÊÇÅ׳öNullReferenceExceptionÒì³£¡£¸ÃÒì³£ÊÇÓÉDispose·½·¨½«¿ÉÏú»Ù×Ó¶ÔÏóÖÃΪ¿ÕËùµ¼Öµġ£

ÓëInvalidOperationExceptionÃÜÇÐÏà¹ØµÄÊÇNotSupportedExceptionÒì³£¡£ÕâÁ½ÖÖÒì³£ºÜÈÝÒ×Çø·Ö£ºInvalidOperationExceptionÊÇÖ¸¡°ÄãÏÖÔÚ²»ÄÜÄÇÑù²Ù×÷¡±£¬¶øNotSupportedExceptionÊÇÖ¸¡°ÄãÓÀÔ¶²»ÄܶÔÕâ¸öÀà×öÄÇÖÖ²Ù×÷¡±¡£ÀíÂÛÉϽ²£¬NotSupportedExceptionÓ¦¸ÃÖ»ÔÚʹÓóéÏó½Ó¿Úʱ³öÏÖ¡£

ÀýÈ磬һ¸ö²»¿É±ä¼¯ºÏÔÚÓöµ½IList.Add·½·¨Ê±Ó¦¸ÃÅ׳öNotSupportedExceptionÒì³£¡£Ïà±È֮ϣ¬Ò»¸ö¿É¶³½á¼¯ºÏÔÚ¶³½á״̬ÏÂÓöµ½¸Ã·½·¨Ê±»áÅ׳öInvalidOperationExceptionÒì³£¡£

NotSupportedExceptionÒ»¸öÔ½À´Ô½ÖØÒªµÄ×ÓÀàÊÇPlatformNotSupportedException¡£¸ÃÒì³£±íʾ£¬²Ù×÷¿ÉÒÔÔÚijЩÔËÐл·¾³Àï½øÐУ¬µ«²»ÄÜÔÚÆäËû»·¾³Àï½øÐС£ÀýÈ磬µ±½«´úÂë´Ó.NETÒÆÖ²µ½UWP»ò.NET Coreʱ£¬Äã¿ÉÄÜÐèҪʹÓÃÕâ¸öÒì³££¬ÒòΪËüÃÇûÓÐÌṩ.NET FrameworkµÄËùÓÐÌØÐÔ¡£

ÄÑÒÔ×½ÃþµÄFormatException

΢ÈíÔÚÉè¼Æ.NETµÄµÚÒ»¸ö°æ±¾Ê±·¸ÁËһЩ´íÎó¡£ÀýÈ磬´ÓÂß¼­ÉϽ²£¬FormatExceptionÊÇÒ»¸ö²ÎÊýÒì³£ÀàÐÍ£¬ÉõÖÁÎĵµÒ²Ëµ¡°¸ÃÒì³£ÊÇÔÚ²ÎÊý¸ñʽÎÞЧʱÅ׳ö¡±¡£µ«ÊÇ£¬²»¹Ü³öÓÚʲôԭÒò£¬Ëüʵ¼ÊÉÏûÓм̳ÐArgumentException¡£ËüҲûÓеط½´æ·Å²ÎÊýÃû³Æ¡£

ÎÒÃÇÔÝʱÌṩµÄ½¨ÒéÊDz»ÒªÅ׳öFormatExceptionÒì³££¬¶øÊÇ×Ô¼º´´½¨ArgumentExceptionµÄ×ÓÀ࣬¿ÉÒÔÃüÃûΪ¡°ArgumentFormatException¡±»òÆäËûЧ¹ûÀàËÆµÄÃû³Æ¡£Õâ¿ÉÒÔΪÄãÌṩ±ØÒªµÄÐÅÏ¢£¬Èç²ÎÊýÃû³ÆºÍʵ¼ÊʹÓõÄÖµ£¬¼õÉÙµ÷ÊÔʱ¼ä¡£

Õâ°ÑÎÒÃÇ´ø»ØÁË×î³õµÄÖ÷Ìâ¡°Òì³£Éè¼Æ¡±¡£Êǵ쬵±Äã×ÔÐпª·¢µÄ½âÎöÆ÷¼ì²âµ½ÁËÎÊÌ⣬Äã¿ÉÒÔÖ»Å׳öÒ»¸öFormatExceptionÒì³££¬µ«ÄÇÎÞ·¨ÎªÏëҪʹÓÃÄãµÄ¿âµÄÓ¦ÓóÌÐò¿ª·¢ÈËÔ±Ìṩ°ïÖú¡£

ÓйØÕâ¸ö¿ò¼ÜÉè¼ÆÈ±ÏÝ£¬ÁíÍâÒ»¸öÀý×ÓÊÇIndexOutOfRangeException¡£´ÓÓïÒåÉϽ²£¬ËüºÍArgumentOutOfRangeExceptionûʲô²»Í¬£¬È»¶ø£¬Õâ¸öÌØÀýÖ»ÊÇÕë¶ÔÊý×éË÷ÒýÆ÷Â𣿲»£¬ÄÇÑùÏë¾Í´íÁË¡£¿´ÏÂIList.ItemµÄʵÀý¼¯£¬¸Ã·½·¨Ö»»áÅ׳öArgumentOutOfRangeExceptionÒì³£¡£

»·¾³È±ÏÝ

»·¾³È±ÏÝÔ´ÓÚÊÀ½ç²¢²»ÍêÃÀÕâÑùÒ»¸öÊÂʵ£¬ÖîÈçÊý¾Ýå´»ú¡¢Web·þÎñÆ÷ÎÞÏìÓ¦¡¢Îļþ¶ªÊ§µÈ³¡¾°¡£µ±Bug±¨¸æÖгöÏÖ»·¾³È±ÏÝʱ£¬ÐèÒª¿¼ÂÇÒÔÏÂÁ½¸ö·½Ã棺

1.Ó¦ÓóÌÐòÕýÈ·µØ´¦ÀíÁËȱÏÝÂð£¿

2.ÔÚÕâ¸ö»·¾³ÀÊÇʲôµ¼ÖÂÁËȱÏÝ£¿

ͨ³££¬Õâ»áÉæ¼°ÈËÔ±·Ö¹¤¡£Ê×ÏÈ£¬Ó¦ÓóÌÐò¿ª·¢ÈËÔ±Ó¦¸ÃµÚÒ»¸ö²éÕÒÎÊÌâµÄ´ð°¸¡£Õâ²»½ö½öÊÇ˵Ҫ´¦Àí´íÎó²¢»Ö¸´£¬¶øÇÒÒªÉú³ÉÒ»¸öÓÐÓõÄÈÕÖ¾¡£

Äã¿ÉÄÜÏëÖªµÀ£¬ÎªÊ²Ã´Òª´ÓÓ¦ÓóÌÐò¿ª·¢ÈËÔ±¿ªÊ¼¡£Ó¦ÓóÌÐò¿ª·¢ÈËÔ±Òª¶ÔÔËάÍŶӸºÔð¡£Èç¹ûÒ»´ÎWeb·þÎñÆ÷µ÷ÓÃʧ°Ü£¬ÔòÓ¦ÓóÌÐò¿ª·¢ÈËÔ±²»ÄÜÖ»ÊÇ˦ÊÖ´ó½Ð¡°²»ÊÇÎÒµÄÎÊÌ⡱¡£Ëû»òËýÊ×ÏÈÐèҪȷ±£Òì³£ÌṩÁË×ã¹»µÄϸ½ÚÐÅÏ¢£¬ÈÃÔËάÈËÔ±¿ÉÒÔ¿ªÕ¹ËûÃǵŤ×÷¡£Èç¹ûÒì³£½ö½öÌṩÁË¡°·þÎñÆ÷Á¬½Ó³¬Ê±¡±µÄÐÅÏ¢£¬ÄÇôËûÃÇÔõôÄÜÖªµÀÉæ¼°ÁËÄĄ̈·þÎñÆ÷£¿

רÓÃÒì³£

NotImplementedException

NotImplementedException±íʾÇÒ½ö±íʾһ¼þÊ£ºÕâÏîÌØÐÔ»¹ÔÚ¿ª·¢¹ý³ÌÖС£Òò´Ë£¬NotImplementedExceptionÌṩµÄÐÅÏ¢Ó¦¸Ã×ÜÊǰüº¬Ò»¸öÈÎÎñ¸ú×ÙÈí¼þµÄÒýÓá£ÀýÈ磺

throw new NotImplementedException("²Î¼û¹¤µ¥#42.");

Äã¿ÉÒÔÌṩ¸üÏêϸµÄÐÅÏ¢£¬µ«Êµ¼ÊÉÏ£¬Äã¼Ç¼µÄÈκÎÐÅÏ¢¼¸ºõÁ¢¿Ì¾Í»á¹ýÆÚ¡£Òò´Ë£¬×îºÃÊÇÖ»½«¶ÁÕßµ¼Ïò¹¤µ¥£¬ËûÃÇ¿ÉÒÔÔÚÄÇÀï¿´µ½ÖîÈç¸ÃÌØÐÔ°´¼Æ»®½«»áÔÚºÎʱʵÏÖÕâÑùµÄÐÅÏ¢¡£

AggregateException

AggregateExceptionÊDZØÒªÖ®¶ñ£¬µ«ºÜÄÑʹÓá£Ëü±¾Éí²»°üº¬ÈκÎÓмÛÖµµÄÐÅÏ¢£¬ËùÓеÄϸ½ÚÐÅÏ¢¶¼Òþ²ØÔÚËüµÄInnerExceptions¼¯ºÏÖС£

ÓÉÓÚAggregateExceptionͨ³£Ö»°üº¬Ò»¸öÏËùÒÔÔÚ¿âÖн«Ëü½â·â×°²¢·µ»ØÕæÕýµÄÒì³£ËÆºõÊǺϺõÂß¼­µÄ¡£Ò»°ãÀ´Ëµ£¬Äã²»ÄÜÔÚûÓÐÏú»Ùԭʼ¶ÑÕ»¸ú×ÙµÄÇé¿öÏÂÔÙ´ÎÅ׳öÒ»¸öÄÚ²¿Òì³££¬µ«´Ó.NET 4.5¿ªÊ¼£¬¸Ã¿ò¼ÜÌṩÁËʹÓÃExceptionDispatchInfoµÄ·½·¨¡£

½â·â×°AggregateException

catch (AggregateException ex)
{
if (ex.InnerExceptions.Count == 1) //½â·â×°
ExceptionDispatchInfo.Capture(ex.InnerExceptions[0]).Throw();
else
throw; //ÎÒÃÇÕæµÄÐèÒªAggregateException
}

ÎÞ·¨»Ø´ðµÄÇé¿ö

ÓÐһЩÒì³£ÎÞ·¨¼òµ¥µØÄÉÈëÕâ¸öÖ÷Ìâ¡£ÀýÈ磬AccessViolationException±íʾ¶ÁÈ¡·ÇÍйÜÄÚ´æÊ±ÓÐÎÊÌâ¡£¶Ô£¬ÄÇ¿ÉÄÜÊÇÓÉÔ­Éú¿â´úÂëËùµ¼Öµģ¬Ò²¿ÉÄÜÊÇÓÉÓ¦ÓóÌÐò´íÎóµØÊ¹ÓÃÁËͬÑùµÄ´úÂë¿âËùµ¼Öµġ£Ö»ÓÐͨ¹ýÑо¿²ÅÄܽÒʾÕâ¸öBugµÄ±¾ÖÊ¡£

Èç¹û¿ÉÄÜ£¬Äã¾ÍÓ¦¸ÃÔÚÉè¼ÆÊ±±ÜÃâÎÞ·¨»Ø´ðµÄÒì³£¡£ÔÚijЩÇé¿öÏ£¬Visual StudioµÄ¾²Ì¬´úÂë·ÖÎöÆ÷ÉõÖÁ¿ÉÒÔ·ÖÎö¸Ã¹æÔòËùº­¸ÇµÄ±êʶ³åÍ»¡£

ÀýÈ磬ApplicationExceptionʵ¼ÊÉÏÒѾ­·ÏÆú¡£FrameworkÉè¼ÆÖ¸ÄÏÃ÷È·Ö¸³ö£¬¡°²»ÒªÅ׳ö»ò¼Ì³ÐApplicationException¡£¡±Îª´Ë£¬Ó¦ÓóÌÐò²»±ØÅ׳öApplicationExceptionÒì³£¡£Ëä˵³õÖÔÈç´Ë£¬µ«¿´ÏÂÏÂÃæÕâЩ×ÓÀࣺ

Microsoft.JScript.BreakOutOfFinally

Microsoft.JScript.ContinueOutOfFinally

Microsoft.JScript.JScriptException

Microsoft.JScript.NoContextException

Microsoft.JScript.ReturnOutOfFinally

System.Reflection.InvalidFilterCriteriaException

System.Reflection.TargetException

System.Reflection.TargetInvocationException

System.Reflection.TargetParameterCountException

System.Threading.WaitHandleCannotBeOpenedException

ÏÔÈ»£¬ÕâЩ×ÓÀàÖÐÓÐһЩӦ¸ÃÊDzÎÊýÒì³££¬¶øÆäËûµÄÔò±íʾ»·¾³ÎÊÌâ¡£ËüÃÇÈ«¶¼²»ÊÇ¡°Ó¦ÓóÌÐòÒì³£¡±£¬ÒòΪËûÃÇÖ»»á±».NET FrameworkµÄ¿âÅ׳ö¡£

ͬÑùµÄµÀÀí£¬¿ª·¢ÈËÔ±²»Ó¦¸ÃÖ±½ÓʹÓÃSystemException¡£Í¬ApplicationExceptionÒ»Ñù£¬SystemExceptionµÄ×ÓÀàÒ²ÊǸ÷²»Ïàͬ£¬°üÀ¨ArgumentException¡¢NullReferenceExceptionºÍAccessViolationException¡£Î¢ÈíÉõÖÁ½¨ÒéÍüµôSystemExceptionµÄ´æÔÚ£¬¶øÖ»Ê¹ÓÃÆä×ÓÀà¡£

ÎÞ·¨»Ø´ðµÄÇé¿öÓÐÒ»¸ö×ÓÀà±ð£¬¾ÍÊÇ»ù´¡ÉèÊ©Òì³£¡£ÎÒÃÇÒѾ­¿´¹ýAccessViolationException£¬ÒÔÏÂÊÇÆäËûµÄ»ù´¡ÉèÊ©Òì³££º

CannotUnloadAppDomainException

BadImageFormatException

DataMisalignedException

TypeLoadException

TypeUnloadedException

ÕâЩÒ쳣ͨ³£ºÜÄÑÕï¶Ï£¬¿ÉÄÜ»á½Òʾ³ö¿â»òµ÷ÓÃËüµÄ´úÂëÖдæÔÚµÄÄÑÒÔÀí½âµÄBug¡£Òò´Ë£¬ºÍApplicationException²»Í¬£¬°ÑËüÃǹéΪÎÞ·¨»Ø´ðµÄÇé¿öÊǺÏÀíµÄ¡£

ʵ¼ù£ºÖØÐÂÉè¼ÆSqlException

Çë¼ÇסÕâЩԭÔò£¬ÈÃÎÒÃÇ¿´ÏÂSqlException¡£³ýÁËÍøÂç´íÎó£¨Äã¸ù±¾ÎÞ·¨µ½´ï·þÎñÆ÷£©Í⣬ÔÚSQL ServerµÄmaster.dbo.sysmessages±íÖÐÓг¬¹ý11000¸ö²»Í¬µÄ´íÎó´úÂë¡£Òò´Ë£¬ËäÈ»¸ÃÒì³£°üº¬ÁËÄãÐèÒªµÄËùÓеײãÐÅÏ¢£¬µ«ÊÇ£¬³ýÁ˼òµ¥µØ²¶»ñ&¼Ç¼Í⣬Äãʵ¼ÊÉÏÄÑÒÔ×öÈκÎÊ¡£

Èç¹ûÎÒÃÇÒªÖØÐÂÉè¼ÆSqlException£¬ÄÇôÎÒÃÇ»áÏ£Íû£¬¸ù¾ÝÎÒÃÇÆÚÍûÓû§»ò¿ª·¢ÈËÔ±×öʲô£¬½«Æä·Ö½â³É¶à¸ö²»Í¬µÄÀà±ð¡£

SqlClient.NetworkException»á±íʾËùÓÐ˵Ã÷Êý¾Ý¿â·þÎñÆ÷±¾ÉíÖ®ÍâµÄ»·¾³´æÔÚÎÊÌâµÄ´íÎó´úÂë¡£

SqlClient.InternalException»á°üº¬ËµÃ÷·þÎñÆ÷´æÔÚÑÏÖØ¹ÊÕÏ£¨ÈçÊý¾Ý¿âË𻵻òÎÞ·¨·ÃÎÊÓ²ÅÌ£©µÄ´íÎó´úÂë¡£

SqlClient.SyntaxExceptionÏ൱ÓÚÎÒÃǵÄArgumentException¡£ËüÊÇÖ¸ÄãÏò·þÎñÆ÷´«µÝÁËÔã¸âµÄSQL£¨Ö±½Ó»òÕßÒòΪORMµÄBug£©¡£

SqlClient.MissingObjectException»áÔÚÓï·¨ÕýÈ·µ«Êý¾Ý¿â¶ÔÏó£¨±í¡¢ÊÓͼ¡¢´æ´¢¹ý³ÌµÈ£©²»´æÔÚʱ³öÏÖ¡£

SqlClient.DeadlockException³öÏÖÔÚÁ½¸ö»ò¶à¸ö½ø³ÌÊÔͼÐÞ¸ÄÏàͬµÄÐÅÏ¢²úÉú³åͻʱ¡£

ÕâЩÒì³£ÖеÄÿһÖÖ¶¼Òþº¬×ÅÒ»¸öÐж¯·½°¸¡£

SqlClient.NetworkException£ºÖØÊÔ²Ù×÷¡£Èç¹ûƵ·±³öÏÖ£¬ÔòÇëÁªÏµÔËάÈËÔ±¡£

SqlClient.InternalException£ºÁ¢¼´ÁªÏµDBA¡£

SqlClient.SyntaxException£ºÍ¨ÖªÓ¦ÓóÌÐò»òÊý¾Ý¿â¿ª·¢ÈËÔ±¡£

SqlClient.MissingObjectException£ºÇëÔËάÈËÔ±¼ì²éÉÏÒ»´ÎÊý¾Ý¿â²¿ÊðÊÇ·ñ¶ªÁ˶«Î÷¡£

SqlClient.DeadlockException£ºÖØÊÔ²Ù×÷¡£Èç¹ûƵ·±·¢Éú£¬Ôò²éÕÒÉè¼Æ´íÎó¡£

Èç¹ûÒªÔÚʵ¼ÊµÄ¹¤×÷ÖÐÕâÑù×ö£¬ÄÇôÎÒÃDZØÐ뽫ËùÓÐ11000¶à¸öSQL Server´íÎó´úÂëÓ³Éäµ½ÄÇЩÀà±ðÖеÄÒ»¸ö£¬ÕâÊÇÒ»ÏîÌØ±ðÁîÈËÍû¶øÉúηµÄ¹¤×÷£¬ÕâÒ²¾Í½âÊÍÁËΪʲôSqlExceptionÊÇÏÖÔÚÕâ¸öÑù×Ó¡£

×ܽá

µ±Éè¼ÆAPIʱ£¬ÎªÁ˱ãÓÚ¾ÀÕýÎÊÌ⣬Ҫ½«Òì³£¸ù¾ÝÐèÒªÖ´Ðе͝×÷µÄÀàÐͽøÐÐ×éÖ¯¡£ÕâÑù¸üÈÝÒ×±àд³ö×ÔУ´úÂ룬¼Ç¼¸ü׼ȷµÄµÄÈÕÖ¾£¬¸ü¿ìµØ½«ÎÊÌâ´«´ï¸øºÏÊʵÄÈË»òÍŶӡ£

   
2181 ´Îä¯ÀÀ       32
 
Ïà¹ØÎÄÕÂ

Éî¶È½âÎö£ºÇåÀíÀôúÂë
ÈçºÎ±àд³öÓµ±§±ä»¯µÄ´úÂë
ÖØ¹¹-ʹ´úÂë¸ü¼ò½àÓÅÃÀ
ÍŶÓÏîÄ¿¿ª·¢"±àÂë¹æ·¶"ϵÁÐÎÄÕÂ
 
Ïà¹ØÎĵµ

ÖØ¹¹-¸ÄÉÆ¼ÈÓдúÂëµÄÉè¼Æ
Èí¼þÖØ¹¹v2
´úÂëÕû½àÖ®µÀ
¸ßÖÊÁ¿±à³Ì¹æ·¶
 
Ïà¹Ø¿Î³Ì

»ùÓÚHTML5¿Í»§¶Ë¡¢Web¶ËµÄÓ¦Óÿª·¢
HTML 5+CSS ¿ª·¢
ǶÈëʽC¸ßÖÊÁ¿±à³Ì
C++¸ß¼¶±à³Ì
×îл¼Æ»®
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢ 6-12[ÏÃÃÅ]
È˹¤ÖÇÄÜ.»úÆ÷ѧϰTensorFlow 6-22[Ö±²¥]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 6-30[±±¾©]
ǶÈëʽÈí¼þ¼Ü¹¹-¸ß¼¶Êµ¼ù 7-9[±±¾©]
Óû§ÌåÑé¡¢Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À 7-25[Î÷°²]
ͼÊý¾Ý¿âÓë֪ʶͼÆ× 8-23[±±¾©]

ʹÓÃdecj¼ò»¯Webǰ¶Ë¿ª·¢
Web¿ª·¢¿ò¼ÜÐγÉÖ®ÂÃ
¸üÓÐЧÂʵÄʹÓÃVisual Studio
MVP+WCF+Èý²ã½á¹¹´î½¨¿ò¼Ü
ASP.NETÔËÐлúÖÆÇ³Îö¡¾Í¼½â¡¿
±àд¸üºÃµÄC#´úÂë
10¸öVisual Studio¿ª·¢µ÷ÊÔ¼¼ÇÉ

.NET¿ò¼ÜÓë·Ö²¼Ê½Ó¦Óüܹ¹Éè¼Æ
.NET & WPF & WCFÓ¦Óÿª·¢
UML&.Net¼Ü¹¹Éè¼Æ
COM×é¼þ¿ª·¢
.NetÓ¦Óÿª·¢
InstallShield

ÈÕÕÕ¸Û .NET Framework & WCFÓ¦Óÿª·¢
Éñ»ªÐÅÏ¢ .NETµ¥Ôª²âÊÔ
±±¾© .NetÓ¦ÓÃÈí¼þϵͳ¼Ü¹¹
̨´ïµç×Ó .NET³ÌÐòÉè¼ÆÓ뿪·¢
ÈüÃÅÌú¿Ë C#Óë.NET¼Ü¹¹Éè¼Æ
¹ã¶«ºËµç .NetÓ¦ÓÃϵͳ¼Ü¹¹