简单的异常例子

简单的异常例子

 

复制代码
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleAppTestDemo1
{
    class TestDemo1
    {
        static void Main(string[] args)
        {
            Calculator c = new Calculator();
            int r = 0;
            Console.WriteLine("int MaxValue : {0}", int.MaxValue);

            try
            {
                r = c.Add(args[0], args[1]);
            }
            catch(IndexOutOfRangeException e)
            {
                Console.WriteLine("IndexOutOfRangeException ...");
                Console.WriteLine(e.Message);
                Console.WriteLine(e.StackTrace);
            }
            catch (OverflowException oe)
            {
                Console.WriteLine("OverflowException ...");
                Console.WriteLine(oe.Message);
                Console.WriteLine(oe.StackTrace);
            }
            catch (Exception e)
            {
                Console.WriteLine("Exception ...");
                Console.WriteLine(e.Message);
                Console.WriteLine(e.StackTrace);
            }
            Console.WriteLine(r);
        }

    }

    class Calculator
    {
        public int Add(string arg1, string arg2)
        {
            int a = 0;
            int b = 0;
            int result = 0;
            bool hasError = false;

            try
            {
                a = int.Parse(arg1);
                b = int.Parse(arg2);
                result = checked(a + b);
            }
            catch (ArgumentNullException ane)
            {
                Console.WriteLine("ArgumentNullException ...");
                Console.WriteLine(ane.Message);
                Console.WriteLine(ane.StackTrace);
                hasError = true;
            }
            catch (FormatException fe)
            {
                Console.WriteLine("FormatException ...");
                Console.WriteLine(fe.Message);
                Console.WriteLine(fe.StackTrace);
                hasError = true;
            }
            catch (OverflowException oe)
            {
                hasError = true;
                throw oe;
            }
            catch (Exception e)
            {
                hasError = true;
                throw e;
            }
            finally
            {
                if (hasError)
                {
                    Console.WriteLine("Exception has error!");
                }
                else
                {
                    Console.WriteLine("Done!");
                }
            }

            return result;
        }
    }
}
复制代码

 

======= End

 

posted @   lsgxeva  阅读(359)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示