设计一个方法,要求:
1.客户端代码可以知道此方法是否执行成功;
2.当执行失败时,返回给客户端代码未能成功执行的原因。
一个实现方式是:
public string myMethod(){
if(....) return "方法执行失败!因为......";
return null;
}
//客户端调用
public void maim(string [] args){
stirng msg = myMethod();
if(msg == null)
...
else
...
}
客户端调用时,当返回结果为null时,此方法执行成功,否则失败,并且返回字符串为失败原因。感觉这种实现方式不是很好,返回字符串并不符合一个变量只有一个含义的原则。
ps:回答没有语言限制,但是最好和特殊的语言特性无关。
返回code加msg的格式,code用于计算机识别,msg用于人类识别。客户端可以通过code值做一些处理,比如返回-1代表服务器端处理失败,msg可以描述失败原因。但是客户端不一定会使用msg,客户端捕获都-1信号时,就跳转到另外一个页面。
作为服务提供方,应该考虑客户端的多样性,如果单纯的返回描述字符串,就与客户端耦合了。
e.g. {code : -1,msg : '用户未登录,没有权限调用此方法'};
当然如果这个方法只是内部使用,就无须这么麻烦了,返回约定值就行了。