如何在java中实现Erlang的“Let it crash”概念

时间:2017-04-11 06:10:42

标签: java crash erlang actor

我一直在搜索关于概念/设计模式的任何简单示例/它有什么叫它,我想在java中看到任何简单的例子,我想知道是否可以在android应用程序中应用这个概念或不,我已经在Android中使用演员模型,但我想将“让它崩溃”模式应用到它,在哪里可以找到任何Java示例或解释...我总是看到没有代码的高层讨论在其中甚至是UML

我没有尝试什么,因为我无法想象它是如何完成的!

1 个答案:

答案 0 :(得分:2)

我有一种方法可以用Java做几年(2003-2009)。然后我发现Erlang是如何工作的,并且从那时起就开始编写Erlang。如果我必须再次编写Java代码,我肯定会使用这种模式。

我在Java中为一些主要的网站项目做的方式是:

  1. 尽可能避免使用try-catch块。让代码在NullPointerExceptions和RuntimeExceptions的类似子类上崩溃。
  2. 从RuntimeException继承的所有异常都是“OK”,并且会在运行时产生崩溃。只需确保它们已记录(在服务器上)或以某种方式(在客户端中)处理。在一个中心位置执行此默认崩溃处理以避免代码重复。
  3. 有时,Java编译器强迫您处理捕获的异常。然后在RuntimeException中重新抛出catched Exception。
  4. 这是一个捕获已检查异常java.sql.SQLException的典型示例,编译器强制您处理和重新启动是作为RuntimeException。

    try {
      your code here...
    } catch (SQLException e) {
      throw new RuntimeException(e);
    }

    这就像一个魅力。保留完整的堆栈跟踪,不会丢失任何信息。编译器很高兴,您很高兴,因为您已将Java检查的异常转换为RuntimeException。

    1. 您自己定义的所有异常以及您在代码中明确抛出的所有异常都应该从java.lang.RuntimeException继承。
    2. 祝你好运!

      这种错误处理方法使我的Java代码库变得更小,并且确实变得“让它崩溃”。不完美,但好多了。