2020-01-15 try{}catch(){}异常处理

异常处理:try{出错的}catch(){出异常,需要异常处理} finally{不管出不出异常都进入finally,做释放}
这样程序不会中断

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient;
using System.Configuration;

namespace Ado.Net2
{
    class Program
    {


        static void Main(string[] args)
        {
            SqlConnection conn1 = null;//因为最终要finally释放掉,所以这里赋值为空
            try
            {
                //连接字符串的读取
                string connStr = ConfigurationManager.ConnectionStrings
                 ["connStr"].ConnectionString;

                //1创建连接对象
                //通过无参构造函数创建一个实例
                //SqlConnection conn = new SqlConnection();
                ////设置他的ConnectionString字符串为connStr
                //conn.ConnectionString = connStr;

                //2 SqlConnection有另一个构造函数,带参数,这个参数就是连接字符串  推荐使用
                // SqlConnection conn1 = new SqlConnection(connStr);//用上面读取到的字符长来做参数,创建一个连接对象
                conn1 = new SqlConnection(connStr);

                //实例化后就可以访问,数据源database,当前连接的状态
                Console.WriteLine("连接对象打开之前");
                Console.WriteLine("Data Source:(conn1.DataSource)");
                Console.WriteLine("DataBase:(conn1.DataBase)");
                // Console.WriteLine("ServerVersion:(conn1.ServerVersion)");
                Console.WriteLine("State:(conn1.State)");
                //打开连接,可以与数据库交互操作数据、查询
                conn1.Open();

                Console.WriteLine("连接对象打开之后");
                Console.WriteLine("Data Source:{conn1.DataSource}");
                Console.WriteLine("DataBase:(conn1.DataBase)");
                Console.WriteLine("ServerVersion:(conn1.ServerVersion)");
                Console.WriteLine("State:(conn1.State)");


                //string.Format("{%b}", conn1.DataSource);
                ////string.Format("{%b}", conn1.DataBase);
                //string.Format("{%b}", conn1.ServerVersion);
                //string.Format("{%b}", conn1.State);


                //交互-----执行命令,查询,添加,更新,删除
                //conn1.Close();//Dispose()使得连接处于空闲状态


            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);//异常信息打印出啦
                //throw;
            }
            finally
            {
                conn1.Close();//不管程序最终怎样,都释放掉
            }
            Console.ReadKey();//暂停的

            //第二种方法,使用using语句块,连接对象只在using中有效,离开using就会被释放掉
            //防止打开连接忘记释放掉,最后写上conn1.close()也可以
            //前提SqlConnection继承与IDisposable(提供托管对象)接口
         
           
        }
    }
}

你可能感兴趣的:(2020-01-15 try{}catch(){}异常处理)