如何捕获并忽略Java中的IncompatibleType错误

时间:2017-10-06 01:01:48

标签: java types compilation try-catch

我一直在搜索大约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语句忽略这个问题,并且在搜索了很长时间后如何解决这个问题我很难过。

有关如何编译并向我提供我正在寻找的输出消息的任何想法吗?

2 个答案:

答案 0 :(得分:0)

使用此代替正常转换

test.integer = (int) test.floater;

答案 1 :(得分:-1)

编译错误无法try-catch

不兼容的error: incompatible types: possible lossy conversion from是一个编译时错误,因此如果没有类型转换或其他解决方法,这是一项不可能完成的任务。

感谢PM 77-1的回复(在评论中),我想把它写成答案来解决问题。