加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_开封站长网 (http://www.0378zz.com/)- 科技、AI行业应用、媒体智能、低代码、办公协同!
当前位置: 首页 > 教程 > 正文

C#中的调试和错误解决

发布时间:2021-11-22 10:34:52 所属栏目:教程 来源:互联网
导读:1、输出调试信息: 可以使用函数Debug.WriteLine(); Trace.WriteLine(); 区别,在于前者只有在调试状态下才输出,后者还可以用于发布版本。 2、try...catch...finally 通过这个函数来捕获异常。 3、附加代码在vs2010中亲自测试通过 using System; using Syste
1、输出调试信息:
 
可以使用函数Debug.WriteLine();
 
Trace.WriteLine();
 
区别,在于前者只有在调试状态下才输出,后者还可以用于发布版本。
 
2、try...catch...finally
 
通过这个函数来捕获异常。
 
3、附加代码在vs2010中亲自测试通过
 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication9
{
    class Program
    {
        static string[] eTypes = { "none", "simple", "index", "nested index" };  //定义异常类型数组并存入string类型的数组中
 
 
        static void Main(string[] args)
        {
            foreach (string eType in eTypes)                                      //循环遍历异常类型
            {
                try
                {
                    Console.WriteLine("Main() try block reached.");
                    Console.WriteLine("ThrowException("{0}") called.", eType);
 
                    ThrowException(eType);
                    Console.WriteLine("Main() try block continues.");
                }
                catch (System.IndexOutOfRangeException e)                        //索引超出范围异常
                {
                    Console.WriteLine("Main() System.IndexOutOfRangeException catch"
                        + "block reached.Message:n"{0}"", e.Message);
                }
                catch
                {
                    Console.WriteLine("Main() general catch block reached.");  //普通catch捕获
                }
                finally                                                        //有无异常都始终会输出
                {
                    Console.WriteLine("Main() finally block reached.");
                }
 
                Console.WriteLine();
            }
            Console.ReadKey();
        }
 
        static void ThrowException(string exceptionType)
        {
            Console.WriteLine("ThrowException("{0}") reached ." ,exceptionType );
 
            switch (exceptionType)
            {
                case "none":                                                    //不抛出异常
                    Console.WriteLine("Not throwing an exception.");             
                    break;
                case "simple":                                                  //生成一般异常
                    Console.WriteLine("Throwing System.Exception.");             
                    throw (new System.Exception());
                    break;
                case "index":                                                    //生成System.IndexOutOfRangeException.异常
                    Console.WriteLine("Throwing System.IndexOutOfRangeException.");
                    eTypes[4] = "error";
                    break;
                case "nested index":                                            //包含自己的try块,其中调用index情况
                    try
                    {
                        Console.WriteLine("ThrowException("nested index")" +
                            "try block reached.");
                        Console.WriteLine("ThrowException ("index") called.");
                        ThrowException("index");
                    }
                    catch
                    {
                        Console.WriteLine("throwException("nested index") general"
                            + "catch block reached.");
                    }
                    finally
                    {
                        Console.WriteLine("ThrowExceptiopn("nested index") finally"
                            + " block reached.");
                    }
                    break;
            }
        }
    }


(编辑:开发网_开封站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读