关于错误处理的方法的讨论,我这个是c#的伪码,大家写delphi的也一样啊(没人回答,大家就顶,都来拿分吧,我散分好了) (300分)

  • 主题发起人 主题发起人 峻祁连
  • 开始时间 开始时间

峻祁连

Unregistered / Unconfirmed
GUEST, unregistred user!
程序中经常要使用自己定义的函数,也能提高代码的复用性,我想问的是自定义函数中的错误处理较好的方法是什么样的?
比如:

//自定义函数
public void myFunc1()
{
try
{
some operation may cause exception;
}
catch(Exception ex)
{
throw(ex)
----(1)
// Response.Write(ex.Message)
----(2)
}

}

public void myFunc2()
{
try
{
some operation may cause exception;
}
catch(Exception ex)
{
throw(ex)
----(1)
// Response.Write(ex.Message)
----(2)
}

}

//实际函数调用部分
public page_load()
{
try
{
myFunc1();
myFunc2();
}
catch(Exception)
{
Response.Write(ex.Message)
}

}

大家看上面的伪代码,是按照(1)的方法在自定义函数中把错误抛出有上一级调用函数来处理较好些还是按照(2)的方法在自定义函数中就把错误处理掉并给出错误提示好一些呢?

我想按第一种在实际调用函数里就必须加try-catch的错误处理,比较麻烦些,但是按第二种显示错误信息的时候Response.Write经常是不合适的,比如把这些自定义函数写在一个单独的类里以便别的工程也能用上,这时候要是用response。write就的using好多东西,何况也不希望自己写的这个类只能用于web工程,大家都说说什么样的错误处理方式比较好?最好用伪码表示一下。catch块一般怎么写比较好,就是错误信息如何提示给用户既方便程序员又不方便用户理解?

请各位大侠不吝赐教啊!!

 
大家都别不说话啊
我自己顶一下
 
如果你写的这段函数被别人调用,或是自己需要从包含这个成员函数的类继承一个新类,这时更多的是需要调用者来主动处理异常。
我觉得用(1)还是方便一点
 
我觉得还是用
try
...
except
on do //处理一些必须在本函数处理的异常;
end
对其他的异常还是给调用者处理比较好
 
缺分,顶一下
 
小弟觉得还是在内部处理比较好一些。这样在调用这个函数的时候,就可以不用考虑太多的问题了,可以使函数最大化的通用。
 
我觉的应该分成两部分, 一部分就是可以在内部处理的,还有一部分就是让调用部分处理的.
//自定义函数
public void myFunc1()
{
try
{
some operation may cause exception;
}
catch(Exception1 ex)
{
dosomething()

}
catch(Exception2 ex)
{
dosomething();
}
...
catch(Exception ex)
{
throw(ex)
----(1)
// Response.Write(ex.Message)
----(2)
}

}
 
用Delphi 时,一般处理异常时用的都是
try
……
except
……
end;
 
可否将异常归类进行封装成自己的一个异常类,在需要处理异常的时候通过这个类来处理
 
(1)方法好,让上级调用者处理异常信息,在JAVA中一般也是通过抛出异常throws Exception
的方式,让调用者知道调用一个方法可能会出现什么异常,强制异常处理!
如果自己在内部处理,调用者在调用的时候根本不知道你这个方法可能会有什么问题.

为了便于理解,沟通调用方和被调用方,还是用(1)好.
 
happylcq
你说的对我很有启发 thanks
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
964
import
I
后退
顶部