示例之后(基于类似的问题):
/**
*
*/
package za.co.sindi.jsf.functions;
import java.io.IOException;
import org.markdown4j.Markdown4jProcessor;
/**
*
* @author Buhake Sindi
* @since 22 January 2013
*
*/
public final class SomeFunctions {
/**
* Private constructor
*/
private SomeFunctions() {
//TODO: Nothing...
}
public static String process(String input) {
SomeProcessor processor = new SomeProcessor();
try {
return processor.process(input);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace(); //I don't believe this is correct.
}
}
}
我在catch
块中该怎么办?我只是在Java Logger
上登录它,还是封装异常的JSF的首选方法?
取决于具体功能要求。
如果可以接受空输出,请记录并返回null。
public static String process(String input) {
SomeProcessor processor = new SomeProcessor();
try {
return processor.process(input);
} catch (IOException e) {
someLogger.warn("Processing markdown failed", e);
return null;
}
}
如果不接受,请扔掉。
public static String process(String input) throws IOException {
SomeProcessor processor = new SomeProcessor();
return processor.process(input);
}
与混凝土问题无关的,您最好在创建/更新期间仅处理一次属性并将其作为属性存储(最终在db中),而不是一次又一次地处理相同的输出。因此,有效地,您最终获得了2个属性/db列,一个带有原始标记,另一个带有解析/处理过的标记。