MrR*_*ROY 4 design-patterns exception try-catch playframework
我现在正在玩游戏,这里是controller.class中的一些代码,我不明白:
/**
* Render a 200 OK application/json response
* @param jsonString The JSON string
*/
protected static void renderJSON(String jsonString) {
throw new RenderJson(jsonString);
}
Run Code Online (Sandbox Code Playgroud)
有没有什么重要的原因让play框架简单地抛出一个新的Render对象?似乎有线使用"抛出"而没有例外.
Play使用Exceptions进行流控制 - 而不是返回类似Model的方法,它们都抛出Exceptions.它们是未经检查的异常(如NullPointerException等),这意味着您不需要throws
方法签名上的子句.
很多人都害怕Play抛出这样的例外,但实际上速度非常快.这有两个原因
RenderJson
你会看到一个被调用的方法fillInStackTrace()
(至少我认为它被称之为)已被覆盖而没有做任何事情 - 创建出现问题时得到的详细堆栈跟踪需要很多时候,但通常没关系,因为异常通常不会被抛出.使用Play进行流控制,有必要删除代码的堆栈跟踪生成部分. 归档时间: |
|
查看次数: |
807 次 |
最近记录: |