本文主要是介绍sphinx里 java接口中对错误信息封装的一点记录,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
SphinxResult result = sphinx.Query(String queryString, String index, String comment);
下面是实现:
/** Connect to searchd server and run current search query. */
public SphinxResult Query ( String query, String index, String comment ) throws SphinxException
{
myAssert ( _reqs==null || _reqs.size()==0, "AddQuery() and Query() can not be combined; use RunQueries() instead" );
AddQuery ( query, index, comment );
SphinxResult[] results = RunQueries();
_reqs = new ArrayList(); /* just in case it failed too early */
if ( results==null || results.length<1 )
return null; /* probably network error; error message should be already filled */
SphinxResult res = results[0];
_warning = res.warning;
_error = res.error;//这里在修改SphinxClient对象里的_error属性
if ( res==null || res.getStatus()==SEARCHD_ERROR )
return null;
return res;
}
SphinxResult是使用sphinx对象进行查询后得到的结果对象,当这个结果对象不为null时说明查询一切正常,要是为null时我可以从sphinx对象中得到错误的原因:
sphinx.getLastError();
在SphinxClient这个接口中有如下的代码:
/** Get last error message, if any. */public String GetLastError(){return _error;}/** Get last warning message, if any. */public String GetLastWarning(){return _warning;}/** Get last error flag (to tell network connection errors from searchd errors or broken responses). */public boolean IsConnectError(){return _connerror;}
这三个方法在我们进行查询时,如果出现问题,它们会将问题反映出来。当试图获取一个对象时,却出现了异常,那可以在获取对象的过程中通过另一个(全局)对象将这个异常的信息保存下来,以供方法返回后使用。
本想说这与状态模式有点关联,但好像不大,附上状态模式的定义:
允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类
这篇关于sphinx里 java接口中对错误信息封装的一点记录的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!