• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
IcoveJ
博客园    首页    新随笔    联系   管理    订阅  订阅

异常处理方法

使用try...catch...finally,而不是用判断语句去判断

ex:让用户输入两个数字,用户可能会输入非数字类型,处理该异常,如果出现该异常就让用户重新输入,输出这两个数字的和:

用的C#语言
using System;
using System.Collection.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace _001_异常处理_学习{
    class Learning{
        static void Main(string[] args){
            double num1 = 0, num2 = 0;
            Console.WriteLine("输入第一个数字:");
            while(true){
             try{
                 num1 = Convert.ToDouble(Console.ReadLine());
                 break;
             }catch{
                 Console.WriteLine("您输入的并非数字,请重新输入!");
             }   
            }
            Console.WriteLine("输入第二个数字:");
            while(true){
             try{
                 num2 = Convert.ToDouble(Console.ReadLine());
                 break;
             }catch{
                 Console.WriteLine("您输入的并非数字,请重新输入!");
             }   
            }
            double sum = num1 + num2;
            Console.WriteLine(sum);//Console.WriteLine($"您输入的两个数字之和为"+sum);
            Console.ReadKey();
        }
    }
}

一个try可以接一个或多个catch,在catch后还可以再跟一个finally。

①try中的语句就相当于是去判断;

②catch是当try中检测出异常就跳到catch中执行语句,catch之后可以跟一判断句,就会涉及到Exception及其衍生类。

例如:
    try{
        System.out.println(2/0);
    }catch(NullPointerException e){
        System.out.println("出现空指针异常");
    }catch(ArrayIndexOutOfBoundsException e){
        System.out.println("数组越界异常");
    }catch(ArithmeticException e){
        System.out.println("算术异常");
    }catch(Exception e){
        System.out.println("异常");
    }

注意,如果要加入Exception的判断语句,必须放在最后面,因为它是基类,它的执行优先级最高。

③finally是无论之前发生了什么,其中语句都会执行。根据此特性,多将释放资源、关闭连接的语句放在其中。

posted @ 2020-11-09 14:12  IcoveJ  阅读(103)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3