遵循示例(基于similar question):
/**
*
*/
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方式来封装异常?
答案 0 :(得分:1)
取决于具体的功能要求。
如果空输出可接受,请记录它并返回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);
}
无关,您最好在创建/更新期间处理markdown并将其存储为属性(最终也在DB中),而不是一次又一次地处理相同的输出。所以,实际上你最终会得到2个属性/数据库列,一个带有原始markdown,另一个带有解析/处理的markdown。