可能重复:
运行时编译VS时间
我怎么知道的代码Java中的一个特定的行是否会抛出一个编译时或运行时错误? 假设特定的代码线无论如何抛出和错误。
可能重复:
运行时编译VS时间
我怎么知道的代码Java中的一个特定的行是否会抛出一个编译时或运行时错误? 假设特定的代码线无论如何抛出和错误。
在Eclipse中,编译时错误会以红色下划线。 一个编译时间错误是由编译器检测到错误。 为编译时错误的常见原因包括:
如果编译器在编译过程中检测到任何错误,将无法建立一个新的组件(在Java或类文件)。
即使你的代码有没有编译时错误,仍然可以在运行时出现的错误。 错误,如“逻辑错误”和“运行时错误”。 运行时错误的一个很好的例子如下:
为了检测哪行究竟发生运行时错误你可以使用的破发点,在Eclipse的组合和适当的异常处理。
要看到,如果你的代码不能编译,尝试编译它。 编译器会抱怨。
要看到,如果你的代码包含运行时错误,编写单元测试。
实际上每一行代码都可以在理论上引发运行时异常并有作为“扔一个编译时错误”没有这样的事。 我相信你已经混了编译器错误与运行时异常。
无论如何,编译器错误很简单:编译看看。 从来就没有什么“可能”约他们:一行代码一定会的,否则也不会,产生一个编译错误。
至于运行时错误,你能做的最好的是静态分析和猜测的代码行是否会导致错误。 有些情况下,都死了明显的,比如throw new RuntimeException()
或null.toString()
但大多数都没有,需要丰富的经验,不执行分析。
最好的办法是编译它,那么大多数编译器将指出所有的编译时错误。 在另一方面运行时错误需要从开发者更大的努力。
一些编译器通知可能抛出的异常的用户,但是如果一个特定的代码行包含运行时与不同的输入运行它们发现和观察结果(即使用单元测试,测试神智等)的最佳方法。
当您编译代码,你会看到阉有一个编译时错误。 运行代码可能会显示运行时错误。