English 中文(简体)
我们撰写的文章如何和在何处试图处理例外情形
原标题:How and where do we write try catch block to handle Exception
  • 时间:2010-03-12 06:01:40
  •  标签:
  • c#
  • exception

我们正在使用C#语言开发一个Windows应用程序。

我们的窗口应用包括三层(建筑师、企业和数据接收层)。 在商业界,有一些公共(企业)方法,通过这些方法,企业部会传达有害的商业等级。 这些公共方法也有一些私人方法可以发挥所需的功能。 在数据Acess层中,有一些方法来自商业层面。

In this situatuion where should i wrte try-catch? a) In Business Layer Public methods b) In Busyness Layer Private methods c) In DataAccess Layer methods d) In UI methods from where Business methods are called.

问题回答

只有当你期望他们并且希望与他们做事时,你才能处理例外情况。 否则,海事组织就能够更好地让它们混淆各层,以便你有完整的痕迹。 即便在列报层次上,我也倾向于让错误(即进入一个友好的错误筛选),除非这是我特别期望的例外。

除例外情况外,一般规则是检查你的投入,以努力避免这些投入,预计你们会得到这些投入,使一切成为例外,留下错误。 错误和 st痕是一件好事。 他们让你们知道什么是错的,什么是错的。 如果某一层混淆其错误,几乎不可能确定什么错误。

例外很难。

你们只能追捕你们预期会发生的事情,而你们所期望的是,你们所期望的那种抽象的姿态,知道它试图完成的任务,而不是仅仅知道任务一小部分。

例如,你的职能是节省时间档案。 这项职能要求行使职能,即生成临时档案名称,保存档案,然后归还临时档案。

如果档案保存功能表明你给它一份目录中已经存在的档案名称,那么该功能就没有处理。 它不了解点名性卷宗。 你要求节省一份温室文件的职能或许应当处理——它知道档案的名称,并知道你可能会造成重复。 因此,你可以产生新的名称,并再次尝试。

function new_temp_file: try: name = generate_temp_name() save_temp_file(name) return name catch ExistingNameError: return new_temp_file()

如果你捕获量比这一数字高,那么高的抽象度就对较低水平知之甚少。

这只是一个简单的例子,但我希望你能听到我所 saying的雄辩的话:在例外情况下,应当找到一个例外。

你们应当利用每个地方的捕获区块,这些地方有可能出现需要变幻的例外情况。





相关问题
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. ...

热门标签