我是靠谱客的博主 留胡子云朵,这篇文章主要介绍c#基础之异常处理及自定义异常 从SQLServer转储数据到MySQL,现在分享给大家,希望可以做个参考。

c#基础之异常处理及自定义异常

一、什么是c#中的异常?

        异常是程序运行中发生的错误,异常处理是程序的一部分。c#中的异常类主要是直接或者间接的派生于 System.Exception类 ,也就是说System.Exception类是所有预定义的系统异常的基类。错误的出现并不总是编写应用的程序员的原因,有的时候应用程序也会因为终端用户的操作不当而发生错误。无论如何,在编写程序前都应该预测应用程序和代码中出现的错误。


二、常见的异常都有哪些?

        ①    ArrayTypeMismatchException

        向数组中存数据时,存入的数据与数组定义的数据类型不同的时候便会出现该异常

        ②    DivideByZeroException

        用零除整数时引发该异常

        ③    IndexOutOfRangeException

        数组越界异常

        ④    NullReferenceException

        对象引用为空异常

        ⑤    OverflowException

        算数运算溢出

        ⑥    InvalidCastException

        运行时强制转换无效异常


三、异常处理

        使用如下代码结构来捕获和处理异常

复制代码
1
2
3
4
5
6
7
8
9
10
try{ //try块中包含容易产生异常的代码 } catch{ //异常处理代码 } finally{ //用于消除try块中分配的任何资源 //以及即使发生异常也需要继续运行的代码 }

        其中finally代码块是try-catch结构执行完成后,无论是否发生异常,finally代码块都会执行。即便是写代码时在try-catch结构里return了,仍旧是会执行了finally代码块之后再去return。

        接下来看一个简单的异常捕获及处理的例子:

复制代码
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
1 public class MyException 2 { 3 public static void Main() 4 { 5 try 6 { 7 A(); 8 B(); 9 C(null); 10 } 11 //捕获A,B,C方法抛出的异常 12 catch (Exception ex) 13 { 14 //打印出异常信息 15 Console.WriteLine(ex); 16 Console.ReadKey(); 17 } 18 } 19 20 static void A() 21 { 22 // throw语法. 23 try 24 { 25 //引发零除异常 26 int value = 1 / int.Parse("0"); 27 } 28 catch 29 { 30 //捕获到异常不做处理继续抛出异常 31 throw; 32 } 33 } 34 35 static void B() 36 { 37 // 过滤异常类型. 38 try 39 { 40 int[] array = new int[]{ 1, 2, 3 }; 41 //引发数组越界异常 42 array[6] = 4; 43 } 44 //捕获到数组越界异常 45 catch (IndexOutOfRangeException ex) 46 { 47 //抛出数组越界异常 48 throw ex; 49 } 50 } 51 52 static void C(string value) 53 { 54 // 创建新的异常. 55 if (value == null) 56 { 57 //抛出新的异常 58 throw new ArgumentNullException("value"); 59 } 60 } 61 }
复制代码

 

        值得一提的是推荐使用throw来抛出异常。因为throw ex会将到现在为止的所有信息清空,认为你catch到的异常已经被处理了,只不过处理过程中又抛出新的异常,从而找不到真正发生异常的代码位置。

四、自定义异常

        自定义异常应该具有以下三个特征:

        ①  继承自System.ApplicationException类,并且使用Exception作为自定义异常类名的结尾

        ②  包含三个构造函数:一个无参构造函数;一个字符串参数的构造函数;一个字符串参数,一个内部异常作为参数的构造                函数

        ③  抛出自定义异常:throw new MyException(); 捕获自定义异常:Catch(MyException){  }

        举个例子:

复制代码
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
1 public class MyException : ApplicationException 2 { 3 private string error; 4 private Exception innerException; 5 //无参数构造函数 6 public MyException() 7 { 8 9 } 10 //带一个字符串参数的构造函数 11 public MyException(string msg) 12 { 13 error = msg; 14 } 15 //带有一个字符串参数和一个内部异常信息参数的构造函数 16 public MyException(string msg, Exception exception) 17 { 18 innerException = exception; 19 error = msg; 20 } 21 public string GetError() 22 { 23 return error; 24 } 25 }
复制代码

 

五、总结

        异常处理的优势:

                对用户来说,在程序发生错误时,不至于程序崩溃,而可以给出提示信息,提升用户的使用体验

                对开发人员来说,可以在短时间内找到程序发生错误的位置,进而提高效率

 

 

 

从SQLServer转储数据到MySQL

前一段时间,由于项目需要将数据库从SQLServer迁移到MySQL,在网上百度了很久,基本都是通过SQLyog实现的。其实使用平时常用的数据库管理软件Navicat Premium也能做到,并且操作简便。

        接下来我介绍一下具体的操作流程

1、首先安装MySQL和Navicat Premium数据库管理软件

2、使用NaVicat Premium连接本地MySQL数据库

  3、新建要导入数据的数据库此处我的数据库名为AlphaGo

4、在要导入数据的数据库表上右键选择导入向导,选择ODBC点击下一步

5、数据链接属性选择Microsoft OLE DB Provider for SQL Server点击下一步

6、输入连接到SQLServer数据库的连接信息,并勾选允许保存密码,然后点击确定。此处我连接本地的SQLServer数据库

7、选中要导入到MySQL的表点击下一步

8、此时可以修改导入后的对应表名,此处不做修改,点击下一步

9、此处可以修改具体每个表的字段类型,此处不做修改,点击下一步

10、默认选中添加记录到目标表,点击下一步

11、点击开始,查看提示信息如图,数据导入成功

转载于:https://www.cnblogs.com/cjm123/p/10175903.html

最后

以上就是留胡子云朵最近收集整理的关于c#基础之异常处理及自定义异常 从SQLServer转储数据到MySQL的全部内容,更多相关c#基础之异常处理及自定义异常内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(64)

评论列表共有 0 条评论

立即
投稿
返回
顶部