【发布时间】:2017-10-06 01:01:48
【问题描述】:
我已经搜索了大约 2 个小时,但找不到在 Java 中捕获和忽略不兼容类型错误的方法。这是由于尝试将浮点值分配给整数而导致的编译时错误。我知道为什么会发生此错误(狭窄的转换),并且特别希望发生此错误,因为它是为了演示错误本身(需要我参加的课程),但是在尝试使用 try-catch 捕获错误时声明我没有运气。
我知道你应该指定你要捕获的错误类型,但是为了这段代码的目的,如果我在这里采用通用路线是可以的,因为一切都很好地包含并且非常简单。我永远不会将这种错误检查用于比该项目的目的更复杂的事情,但是如果您知道确切的错误类型导致在尝试时显示消息“错误:不兼容的类型:可能有损从浮点数转换为整数”要编译,我将使用该错误类型。我浏览了多个站点,但找不到此错误的确切类型(例如 IOException)。
这是我要执行的代码:
import java.lang.*;
public class AssignTests {
int integer = 10;
float floater = 1234.1234f;
public static void main(String[] args){
AssignTests test = new AssignTests();
try{
test.integer = test.floater;
}
catch (Exception t)
{
System.out.println("An integer cannot be assigned the value of a float.");
}
}
}
当我去编译这段代码时,尽管尝试通过 try-catch 语句忽略这个问题,但我仍然看到不兼容类型的错误消息,并且在搜索了这么长时间之后如何解决这个问题我很困惑。
关于如何编译它并给我正在寻找的输出消息的任何想法?
【问题讨论】:
-
编译错误不能使用
try-catch。 -
你不能“捕捉”编译时错误——你可以修复它们。如果你想演示一些东西,也许从命令行运行编译器并显示错误输出?
-
谢谢,这真的很有帮助!我以为它们会被“检查异常”所涵盖,但我一定错过了这一点。我想我必须找到解决此问题的另一种方法,感谢您提供的信息。
标签: java types compilation try-catch