【发布时间】:2014-09-24 19:15:07
【问题描述】:
如果我的问题看起来很幼稚,请原谅我。这是我在这里的第一个问题。
我脑子里有一个简单的问题。 Java 语言已使用 C 和 C++ 实现。
我的问题是
在 C 语言中,C 的格式化行为未定义以供使用 不同于给定数据类型的修饰符。
int c=10;
printf("%f",c); // unspecified behaviour
而在 Java 中,如果我们使用类似的概念来使用不同的格式说明符打印数字,我们会得到一个 IllegalFormatConversionExceptoion。
异常详情:-
线程“main”中的异常 java.util.IllegalFormatConversionException: f != java.lang.Integer
我的问题是:-
为什么 Java 和 C 之间的差异如此之大,尽管 Java 是从 C 派生的!
请清除我的疑问。我会感谢你们的天才......
【问题讨论】:
-
但是你的问题是什么?
-
我认为更好的方法是,Java 使用异常处理来捕获或控制未定义的行为,而在 C 中我们没有异常处理的概念。
-
是的,你会从 Java 中得到运行时错误,但不会从 C 中得到。另一方面,当你使用错误的格式说明符时,大多数现代 C 编译器都会给你一个编译时警告。
-
@juanchopanza-我认为这个问题很清楚。为什么 Java 和 C 之间的差异如此之大,尽管 Java 是从 C 派生的!另外,我没想到会收到很多反对票!好可怜!!!
-
@asad 您刚刚添加了对问题的说明。之前你所拥有的只是列出的事实和例子,没有任何实际问题,所以不清楚。
标签: java c exception format format-specifiers