eig*_*tx2 2 c++ delphi pascal c++builder
我有这个用C++ Builder 6编写的程序.我没有编写所有代码,只是编写了一些代码.然而,语言不是C++(据我所知) - 它看起来更像是Delphi或Pascal.这就是我将它们全部包含在标签中的原因.
我有一个叫做的int Oversteering.
try
{
Oversteering=HoursCounter.ToInt();
}
catch(EConvertError &convertError)
{
Oversteering=0;
}
Run Code Online (Sandbox Code Playgroud)
HoursCounter 是一个AnsiString,它是一个int的形式.
因为这是整个代码中唯一的try/catch语句(这不太好,我知道),我在Delphi/Pascal/???中找不到任何好的例子,我不知道是不是写得不错.
好吧,我尝试将字符串转换为int.有时我会收到此错误:

也就是说,发生了一个名为EConvertError的异常.
所以我的问题是:为什么这个异常没有被catch语句捕获?
Pre*_*ias 14
调试器在运行代码时会显示此错误,如果您运行exe并且具有相同的情况,则不会向您显示错误消息
捕获到异常,但调试器正在通知您有关代码中的错误
就在这里
try
{
Oversteering=HoursCounter.ToInt();
}
Run Code Online (Sandbox Code Playgroud)
因为在调试器中运行,你试图将(空白空间)转换为整数,调试器将显示异常...但是当运行exe时,调试器将设置
Oversteering=0
Run Code Online (Sandbox Code Playgroud)
从about.com查看
中断异常在构建具有异常处理的程序时,您可能不希望Delphi在异常上中断.如果您希望Delphi显示异常发生的位置,这是一个很棒的功能; 但是,当您测试自己的异常处理时,它可能会很烦人.
| 归档时间: |
|
| 查看次数: |
2014 次 |
| 最近记录: |