首页 > 其他分享 >函数抛出异常学习

函数抛出异常学习

时间:2023-07-26 21:55:19浏览次数:37  
标签:std 函数 抛出 range stoi 异常 out

转自:https://blog.csdn.net/u014694994/article/details/79074566

1、例子

stoi当字符串不符合规范时,会抛出异常。

#include <stdexcept>
#include <iostream>
#include <string>
using namespace std;
 
int main()
{
    std::string y = "253647586946334221002101219955219971002";
    int x;
 
    try {
        x = stoi(y);
    }
    catch (std::invalid_argument&){
        // if no conversion could be performed
        cout << "Invalid_argument" << endl;
    }
    catch (std::out_of_range&){
        // if the converted value would fall out of the range of the result type 
        // or if the underlying function (std::strtol or std::strtoull) sets errno 
        // to ERANGE.
        cout << "Out of range" << endl;
    }
    catch (...) {
        // everything else
        cout << "Something else" << endl;
    }
    return 0;
}

运行之后输出:Out of range。说明stoi函数抛出异常,并被捕获。它可能会抛出std::invalid_argument和std::out_of_range异常。

当y中包含字母无法转换为数字时,会抛出std::out_of_range异常,打印结果为:Invalid_argument。(已测试)

 https://en.cppreference.com/w/cpp/string/basic_string/stol

 如果没有try-catch结构捕获异常会发生什么呢?如下:

-> % ./Demo              
libc++abi: terminating with uncaught exception of type std::out_of_range: stoi: out of range
[1]    31182 abort      ./Demo

 会发生coredump,程序异常退出。

 

标签:std,函数,抛出,range,stoi,异常,out
From: https://www.cnblogs.com/BlueBlueSea/p/17583648.html

相关文章

  • 浅谈Excel开发:六 Excel 异步自定义函数
    上文介绍了Excel中的自定义函数(UDF),它极大地扩展了Excel插件的功能,使得我们可以将业务逻辑以Excel函数的形式表示,并可以根据这些细粒度的自定义函数,构建各种复杂的分析报表。普通的UDF自定义函数的基本执行逻辑是,Excel接受用户输入的函数表达式,然后通过UDF函数的处理逻辑进行处......
  • 前端异常监控之 Sentry的部署和使用
    由于最近在整理前端异常监控相关内容,所以自己在虚拟机搭建部署了一下Sentry,把搭建过程及一些自己踩得坑整理如下一、Sentry部署Sentry搭建有两种方式:通过Python安装教程地址通过Docker容器安装教程地址我本地是用Docker进行搭建的。1、安装docker armasm复制......
  • Oracle之TO_DATE函数
    TO_DATE格式(以时间:2007-11-0213:45:25为例)Year:yytwodigits两位年显示值:07yyythreedigits三位年显示值:007yyyyfourdigits四位年显示值:2007Month:mmnumber两位月显示值:11monabbreviated字符集表......
  • 【Oracle】 管道函数pipelined function简单的使用
    Oracle管道函数pipelinedfunction简单的使用如果在函数(function)中加关键字pipelined,就表明这是一个oracle管道函数,其返回值类型必为集合,体现出来的数据结构类似于表,即可以理解成,使用管道函数可以返回一张查询表,可以是单行数据也可以是多行数据,而不是平常函数返回的单行数据......
  • cache常用函数
    1.Set设置变量 sets=3 2.write输出变量 ws  3.kill 删除所有变量或一些指定的变量或所有变量除了指定的变量。 4.new 初始化变量。 5.Do(d):执行命令 6.Quit(q):结束执行一个函数并返回一个值 7.$Horolog$Horolog包含了时间和日期,它们由逗号分开。第一部分是......
  • 【面试必背知识】Java 中常见的异常有哪些?
    ......
  • 【Java异常】Variable used in lambda expression should be final or effectively fi
    https://blog.csdn.net/weixin_44299027/article/details/117333667*lambda表达式中使用的变量应该是final或者有效的final*,也就是说,lambda表达式只能引用标记了final的外层局部变量,这就是说不能在lambda内部修改定义在域外的局部变量,否则会编译错误......
  • ORACLE UNPIVOT函数
    语法     函数用途: UNPIVOT函数用来将列值转换为行值.1. INCLUDE|EXCLUDENULLS子句参数可以控制在结果集中是否保留值为NULL的行(新生成的行,即PIVOT_FOR_CLAUSE参数值)。当省略这个控制参数时,默认为EXCLUDENULLS,即去除空值行。2. 列转行后结果集中生成的......
  • 无涯教程-jQuery - bind( type, data, fn )方法函数
    bind(type,[data],fn)方法将处理程序绑定到每个匹配元素的一个或多个事件(如click)。也可以绑定自定义事件。bind(type,[data],fn)-语法selector.bind(type,[data],fn)这是此方法使用的所有参数的描述-type   - 一种或多种事件类型,以空格分隔。data  ......
  • ORACLE函数大全
    ORACLE函数大全SQL中的单记录函数1.ASCII返回与指定的字符对应的十进制数;SQL>selectascii('A')A,ascii('a')a,ascii('0')zero,ascii('')spacefromdual;      A        A     ZERO    SPACE------------------------------------......