当前位置: 首页 > 面试题库 >

运行时错误和编译器错误有什么区别?

杨晟
2023-03-14
问题内容

在我的关于多态性的专业幻灯片中,我看到了这段代码,并带有一些注释:

discountVariable =              //will produce
  (DiscountSale)saleVariable;//run-time error
discountVariable = saleVariable //will produce
                                //compiler error

如您所见,它在第一个强制转换语句中表示将产生 运行时 错误,而在另一个声明中将产生 编译器错误

是什么导致这些错误?以及它们之间有何不同?


问题答案:

仅在代码实际运行时才会发生运行时错误。这些是最困难的-导致程序崩溃和代码中的错误,难以跟踪。

一个示例可能正在尝试将字符串“ hello”转换为整数:

string helloWorld = "hello";
int willThrowRuntimeError = Convert.ToInt32(helloWorld);

编译器可能不会将此视为问题,但是在运行时将引发错误。

编译器错误是由于代码不正确所致,其中,编译器会引发错误,以警告您某些无法编译的内容,因此无法运行。

编译器错误的示例为:

int = "this is not an int";

希望能有所帮助。



 类似资料:
  • 为什么这不能用gcc48和clang32编译? GCC错误: 叮当声错误: 编辑-解决方案 我已经接受了查尔斯·萨尔维亚的回答,但出于实际原因,我无法使用提出的变通方法(专门研究N)。我找到了其他适合我的解决办法。如果依赖于T,则启用_:

  • 我正在尝试为协议缓冲区构建Java运行时库。我在Windows和OS X上都犯了错误,因为我遵循了Protocol Buffers项目(从中克隆而来)中Java目录下的自述指令https://github.com/google/protobuf). 当我在protobuf/java目录下运行

  • 我最近在部署到我们的共享主机时遇到了问题。从 Visual Studio 通过 Web 部署进行部署时,99% 的时间我在登录后在登录页面或主页上收到此错误。有时我可能会点击几下不同的部分,然后它就会击中。它通常会在几分钟到90分钟后消失。 运行Windows Server 2012 R2 Standard、IIS8和.NET 4.5的Web主机。 Web主机建议我需要使用Visual Studi

  • 问题内容: 专业人士使用这两种方式的缺点是什么? 我实际上在Netbeans的“项目属性”>“ Java应用程序的库”中看到了它。我们有两个选项卡,一个用于编译时间库和运行时库,看起来我们可以将一个库添加到彼此独立的一个库中 问题答案: “库属性”对话框的用户界面和术语非常混乱。 该对话框上的“帮助”按钮将为您提供一些信息。 编译时库列表可以是运行时库列表的子集。 考虑这种情况… 您具有从库“ w