English 中文(简体)
例外情况处理
原标题:Exceptions handle
  • 时间:2011-04-27 16:58:08
  •  标签:
  • c#
  • exception

我需要了解这两种处理例外情况的做法是否更好? 或者说要做得更好的其他方式。

try{
                if (String.IsNullOrEmpty(filePath))
                {
                    throw new ArgumentNullException("The path is null or empty.", "filePath");
                }

 try{
                if (String.IsNullOrEmpty(filePath))
                {
                    Console.WriteLine("The path is null or empty");
                } 
最佳回答

我可以肯定地说,因为你方案的其他部分没有,但我猜测第一种选择是杀害你的方案,而第二种选择只是向青少年印刷一些东西,然后继续使用你的方案。 因此,这个问题的答案取决于YOU希望它做些什么? 如果这种情况发生,方案就不得不死亡? 保留例外,不处理。 在出现这种情况时,必须重新配置用户? 然后使用你的第二种选择,但将你的综合框架发言变成了一种循环,而且只是在条件不再真实时才迅速。

问题回答

我建议采取第二种做法,但你不需要这样做。 处理 除外案件的情况除外。 如果你能够用<条码>预防这些病例,那么你更愿意这样做。 如果你是某种优化业绩,你可能已经知道,与条件测试相比,放弃和捕获例外可能更昂贵。

如果不走这条道路,就会打破你的整个应用流程,就是一个好的想法,以便你能够恢复另一个审判的申请状态,或向用户表示道歉。

另一方面,Console.WriteLine (“路途无效或空洞”);仅对情况使用者进行说明,并向前迈进。 如果你的执行流不会受到损害,这将给你的申请增加最低限度的间接费用,因此更可取。

http://research.microsoft.com/en-us/projects/ Contractings/"rel=“nofollow”编码合同。 尤其是前提条件(即你的例子)。

如果情况有误,则使用回归法或类似法。 和没有档案或档案

如果是意外情况(核心是争辩),则使用pet。

特殊处理费用昂贵,因此明智地使用。

h)

马里

Well, first of all in the second code you don t throw any exception, you simply write a message to the console. This means that the second one won t signal anything in a windows forms or wpf application or - worse - a web application. Besides that, by throwing an exception you are able to intercept it on another stage of the application, and behaving correspondingly, whereas Console.WriteLine is only specific to the scope where you invoked it.

您还可能想考虑是否应当提出例外。 出现这种情况的所有情况是,你的法典可能严格处理“例外”案件,例如提供违约值或提供违约值。





相关问题
Anyone feel like passing it forward?

I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...

NSArray s, Primitive types and Boxing Oh My!

I m pretty new to the Objective-C world and I have a long history with .net/C# so naturally I m inclined to use my C# wits. Now here s the question: I feel really inclined to create some type of ...

C# Marshal / Pinvoke CBitmap?

I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...

How to Use Ghostscript DLL to convert PDF to PDF/A

How to user GhostScript DLL to convert PDF to PDF/A. I know I kind of have to call the exported function of gsdll32.dll whose name is gsapi_init_with_args, but how do i pass the right arguments? BTW, ...

Linqy no matchy

Maybe it s something I m doing wrong. I m just learning Linq because I m bored. And so far so good. I made a little program and it basically just outputs all matches (foreach) into a label control. ...

热门标签