我一直在搜索大约2个小时,但找不到捕获和忽略Java中不兼容类型错误的方法。这是由于尝试将float值分配给整数而导致的编译时错误。我知道为什么会发生这种错误(窄转换),特别是希望发生这个错误,因为它是为了演示错误本身(我所在的课程所需),但试图使用try-catch捕获错误声明我没有运气。
我知道你应该指定你正在捕获的错误类型,但是为了这个代码的目的,我可以在这里采用通用路由,因为一切都包含得非常简单。我永远不会使用这种错误检查比本项目的目的更多涉及,但如果您知道导致消息的确切错误类型"错误:不兼容的类型:可能从浮动转换为int"在尝试编译时显示,我将使用该错误类型。我查看了多个站点,但找不到此错误的确切类型(例如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语句忽略这个问题,并且在搜索了很长时间后如何解决这个问题我很难过。
有关如何编译并向我提供我正在寻找的输出消息的任何想法吗?
答案 0 :(得分:0)
使用此代替正常转换
test.integer = (int) test.floater;
答案 1 :(得分:-1)
编译错误无法try-catch
。
不兼容的error: incompatible types: possible lossy conversion from
是一个编译时错误,因此如果没有类型转换或其他解决方法,这是一项不可能完成的任务。
感谢PM 77-1的回复(在评论中),我想把它写成答案来解决问题。