gpt4 book ai didi

c++ - 我的 try catch 零除法有问题吗?

转载 作者:行者123 更新时间:2023-11-28 01:21:24 25 4
gpt4 key购买 nike

我试图通过制作将 int 归零的函数来制作简单的程序来捕获和错误,但我没有看到错误,也没有看到正确的输出

#include <iostream>

constexpr double division(int a, int b){
if(b == 0)
throw "Cannot be divides by zero";
return (a / b);
}


int main(){
int x {50};
int y {0};
int z {0};
z = x / y;
try{
z = division(x ,y);
std::cout << z << std::endl;
}catch (const char* msg) {
std::cerr << msg << std::endl;
}
return 0;
}
 C:\Users\Tungki\Desktop\c>g++ jj.cc
C:\Users\Tungki\Desktop\c>a
C:\Users\Tungki\Desktop\c>

如你所见,这里没有发生任何事情

最佳答案

int x {50};
int y {0};
int z {0};
z = x / y; <<<<<<<<<<< divide by 0

后面的代码没有执行(未定义的行为),可能你不想使用'/'除以零而是使用你的函数;-)

在评论中输入 z = x/y; 你会得到预期的行为:

#include <iostream>

constexpr double division(int a, int b){
if(b == 0)
throw "Cannot be divides by zero";
return (a / b);
}


int main(){
int x {50};
int y {0};
int z {0};
// z = x / y;
try{
z = division(x ,y);
std::cout << z << std::endl;
}catch (const char* msg) {
std::cerr << msg << std::endl;
}
return 0;
}

编译和执行:

pi@raspberrypi:/tmp $ g++ -pedantic -Wall -Wextra d.cc
pi@raspberrypi:/tmp $ ./a.out
Cannot be divides by zero

关于c++ - 我的 try catch 零除法有问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56094256/

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