
c# checked unchecked 检查程序是否溢出
发布日期:2021-05-07 10:31:44
浏览次数:20
分类:精选文章
本文共 2485 字,大约阅读时间需要 8 分钟。
checked (操作符方式)
namespace ConsoleApp1{ class Program { static void Main(string[] args) { uint x = uint.MaxValue; // 4294967295 Console.WriteLine(x); string binStr = Convert.ToString(x, 2); // 11111111111111111111111111111111 Console.WriteLine(binStr); try { // 这里会溢出,不checked处理,+1后会变成0 // 使用checked修饰符,会抛出 System.OverflowException: 算术运算导致溢出 uint y = checked(x + 1); // 不会输出,因为产生了异常,跳转到了catch语句块 Console.WriteLine(y); } catch (OverflowException e) { Console.WriteLine("有异常"); } Console.WriteLine("程序继续执行"); } }}//输出429496729511111111111111111111111111111111有异常程序继续执行
checked 方式2(上下文方式)
namespace ConsoleApp1{ class Program { static void Main(string[] args) { uint x = uint.MaxValue; // 4294967295 Console.WriteLine(x); string binStr = Convert.ToString(x, 2); // 11111111111111111111111111111111 Console.WriteLine(binStr); checked { try { uint y = x + 1; // 不会输出,因为产生了异常,跳转到了catch语句块 Console.WriteLine(y); } catch (OverflowException e) { Console.WriteLine("有异常"); } Console.WriteLine("程序继续执行"); } } }}// 输出429496729511111111111111111111111111111111有异常程序继续执行
unchecked (操作符方式)
namespace ConsoleApp1{ class Program { static void Main(string[] args) { uint x = uint.MaxValue; // 4294967295 Console.WriteLine(x); string binStr = Convert.ToString(x, 2); // 11111111111111111111111111111111 Console.WriteLine(binStr); try { // 因为使用了unchecked,这里不会有异常产生,可以不使用try来捕获异常 // c#默认采用的就是unchecked模式 uint y = unchecked(x + 1); // 0 Console.WriteLine(y); } catch (OverflowException e) { Console.WriteLine("有异常"); } Console.WriteLine("程序继续执行"); } }}// 输出4294967295111111111111111111111111111111110程序继续执行
unchecked 方式2(上下文方式)
同理
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2025年03月26日 12时28分56秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Linux驱动开发之PCIe Host驱动
2019-03-05
Vue.js Element Basic组件使用
2019-03-05
android MVP模式
2019-03-05
android 头像选择,裁剪全套解决方案,你值得拥有!
2019-03-05
MapReduce
2019-03-05
springboot swagger2
2019-03-05
shell(十)case的几个典型应用
2019-03-05
Linux环境变量配置错误导致命令不能使用(杂谈)
2019-03-05
openstack安装(六)镜像glance服务安装
2019-03-05
openstack安装(九)网络服务的安装--控制节点
2019-03-05
shell编程(六)语言编码规范之(变量)
2019-03-05
linux杂谈之特殊字符的打印和在各种软件如何打出
2019-03-05
vim杂谈(三)之配色方案
2019-03-05
vim杂谈(五)之vim不加载~/.vimrc
2019-03-05
Linux杂谈之终端快捷键
2019-03-05
vimscript学习笔记(二)预备知识
2019-03-05
vimscript学习笔记(三)信息打印
2019-03-05
awk杂谈之数组习题
2019-03-05
Linux网络属性配置详解
2019-03-05