gpt4 book ai didi

c++ - exception_handling_C++_xcode

转载 作者:行者123 更新时间:2023-11-28 03:27:12 24 4
gpt4 key购买 nike

以下代码在 Visual Studio 2010 中完美抛出异常:

        #include <iostream>
#include <cmath>
using namespace std;

int perfectSquare(double sq, int nu);

int main()
{
double num;
double squareRoot;
int perfectSq;

cout << "Enter the a number: ";
cin >> num;

try
{
squareRoot = sqrt(num);
perfectSq = perfectSquare(squareRoot, num);
cout << "The square root is: " << perfectSq << endl;
}

catch(char * exceptionString)
{
cout << exceptionString;
}

cout << "BYE." << endl;
// system("PAUSE");
return 0;
}


int perfectSquare(double sq, int nu)
{
int temp = sq;
if (sq != temp) //clever test; if square root IS NOT an INT
{
throw "not a perfect square.\n";
}
else
{
return sq;
}
}

但是,在 Xcode 中,它不会恢复,并且会一直在调试器中遇到断点。例如,如果我输入 33(不是一个完美的正方形),则会显示以下错误:libc++abi.dylib:终止调用抛出异常(lldb)

它应该“抛出”这一行:“不是一个完美的正方形。”并且程序应该终止(就像在 VS 2010 中一样)。我不想在 Xcode 中启用异常断点,因为我只想让程序在不调试的情况下一直运行到最后。

感谢大家。

最佳答案

你抛出的是一个字符串文字,它在 XCode 中似乎是一个 const char*,而不是一个 char*

关于c++ - exception_handling_C++_xcode,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13603128/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com