zy46_异常(1)

1.异常

释义:程序执行期间发生的问题,包括非法数据、读取文件不存在等等。

程序(1)示例:

namespace _46_异常_1_
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("请输入分母");
            int denominator=Convert.ToInt32(Console.ReadLine());//double型可以为0
            double result = 100 / denominator;
            Console.WriteLine("结果:100/{0}={1}",denominator,result);
        }
    }
}

非法数据输入:如果输入

0

提示:

System.DivideByZeroException: 'Attempted to divide by zero.'

非法数据输入:如果输入

hello

提示:

System.FormatException: 'Input string was not in a correct format.'

2.如何捕获异常

2.1捕获异常–try-catch结构

程序(2)示例:

namespace _46_异常_1_
{
    internal class Program
    {
        static void Main(string[] args)
        {
            try
            {
                Console.WriteLine("请输入分母");
                int denominator=Convert.ToInt32(Console.ReadLine());//double型可以为0
                double result = 100 / denominator;
                Console.WriteLine("结果:100/{0}={1}",denominator,result);
            }
            catch(DivideByZeroException)
            {
                Console.WriteLine("分母不能为零!");
            }
            catch (FormatException)
            {
                Console.WriteLine("格式错误!");
            }
        }
    }
}

非法数据输入:如果输入

0

输出:

请输入分母
0
分母不能为零!

非法数据输入:如果输入

hello

输出:

请输入分母
hello
格式错误!

2.2收尾工作–try-catch-finally结构

不管程序有无异常,都会执行finally块中程序,起到收尾工作的作用

程序(3)示例

namespace _46_异常_1_
{
    internal class Program
    {
        static void Main(string[] args)
        {
            try
            {
                Console.WriteLine("请输入分母");
                int denominator=Convert.ToInt32(Console.ReadLine());//double型可以为0
                double result = 100 / denominator;
                Console.WriteLine("结果:100/{0}={1}",denominator,result);
            }
            catch(DivideByZeroException)
            {
                Console.WriteLine("分母不能为零!");
            }
            catch (FormatException)
            {
                Console.WriteLine("格式错误!");
            }
            finally
            {
                Console.WriteLine("这是finally块。");
            }
        }
    }
}

非法数据输入:如果输入

0

输出:

请输入分母
0
分母不能为零!
这是finally块。

数据输入:如果输入

2

输出:

请输入分母
2
结果:100/2=50
这是finally块。

2.3抛出异常–throw语句

程序(4)示例:

namespace _46_异常_1_
{
    internal class Program
    {
        static void Main(string[] args)
        {
            try
            {
                Console.Write("请输入一个0到10之间的整数:");
                int number=Convert.ToInt32(Console.ReadLine());
                if (number<0||number>10)
                {
                    throw new IndexOutOfRangeException();
                }
                else
                {
                    Console.WriteLine("你输入的整数是:{0}", number);
                }
            }
            catch(IndexOutOfRangeException)
            {
                Console.WriteLine("你输入的整数超出了范围!");
            }
            finally
            {
                Console.WriteLine("谢谢");
            }
        }
    }
}

非法数据输入:如果输入

28

输出:

请输入一个0到10之间的整数:28
你输入的整数超出了范围!
谢谢

数据输入:如果输入

9

输出:

请输入一个0到10之间的整数:9
你输入的整数是:9
谢谢
public List<HuShiKPGLZXJLPto> getHuShiKPGLYZZXList(List<String> zhiXingJLIDs) { QYZ_ZY_YiZhuZXModel yiZhuZXModel = QYZ_ZY_YiZhuZXModel.yZ_ZY_YiZhuZXModel; QYZ_ZY_YiZhuXXModel yiZhuXXModel = QYZ_ZY_YiZhuXXModel.yZ_ZY_YiZhuXXModel; // 使用Projections.bean方法将查询结果转化为HuShiKPGLZXJLPto对象。 return new JPAQueryFactory(entityManager) .select(Projections.bean(HuShiKPGLZXJLPto.class, yiZhuZXModel.zuZhiJGID, yiZhuZXModel.zuZhiJGMC, yiZhuZXModel.bingRenID, yiZhuZXModel.zhuYuanJZID, yiZhuZXModel.xingMing, yiZhuZXModel.yiZhuID, yiZhuZXModel.yiZhuMC, yiZhuZXModel.yiZhuDH, yiZhuZXModel.fuYiZID, yiZhuZXModel.shunXuHao, yiZhuZXModel.yiZhuFLDM, yiZhuZXModel.yiZhuFLMC, yiZhuZXModel.yiCiJL, yiZhuZXModel.yiCiJLDW, yiZhuZXModel.jiLiang, yiZhuZXModel.jiLiangDW, yiZhuZXModel.tiJi, yiZhuZXModel.tiJiDW, yiZhuZXModel.daYinJL, yiZhuZXModel.yiCiYL, yiZhuZXModel.zhiXingSJ, yiZhuZXModel.daYinBZ, yiZhuXXModel.pinCiID, yiZhuXXModel.pinCiMC, yiZhuXXModel.yiShengZT, yiZhuXXModel.geiYaoFSID, yiZhuXXModel.geiYaoFSMC, yiZhuXXModel.yaoPinMC, yiZhuZXModel.daYinRQ, yiZhuZXModel.shenQingDID, yiZhuZXModel.guiGeID, yiZhuZXModel.daGuiGID, yiZhuZXModel.lingYaoFSDM, yiZhuZXModel.lingYaoFSMC, yiZhuZXModel.shuYeDH)) .from(yiZhuZXModel) .leftJoin(yiZhuXXModel) .on(yiZhuZXModel.zuZhiJGID.eq(yiZhuXXModel.zuZhiJGID), yiZhuZXModel.yiZhuID.eq(yiZhuXXModel.id), yiZhuXXModel.id.isNotNull(),//过滤null值 yiZhuZXModel.yiZhuID.isNotNull())//过滤null值 .where(yiZhuZXModel.id.in(zhiXingJLIDs)) .orderBy(yiZhuZXModel.zhiXingSJ.asc(), yiZhuZXModel.yiZhuDH.asc(), yiZhuZXModel.fuYiZID.asc(), yiZhuZXModel.yiZhuID.asc()) .fetch();请帮我看看这段代码为什么测试出现Cannot invoke "java.util.Collection.size()" because "right" is null
06-03
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值