C#编程基础(中级)(一)——异常,异常处理,类,构造函数

本文介绍了C#编程中的异常处理机制,包括try-catch-finally语句块的使用,以及如何处理IndexOutOfRangeException异常。此外,通过实例展示了如何控制用户输入异常并计算两个整数的和。接着,讲解了类的概念,包括数据成员和函数成员,以及字段和方法的声明。最后,探讨了构造函数的作用,解释了如何在创建类实例时调用构造方法,并讨论了默认构造函数的情况。
摘要由CSDN通过智能技术生成
1.异常处理
  • 查看:
    按F5出现异常中断,查看异常详细信息
  • 处理:
    try
    {

    }
    catch( exceptionType e )
    {

    }
    finally
    {

    }
  • try块包含可能出现的异常代码(一条或多条语句)
  • catch块用来捕捉异常,当代码发生异常,则当异常的类型和catch块中的类型一样的时候,就会执行该catch块,如果catch块的参数不写,表示发生任何异常都执行这个catch块
  • finally块包含了始终会执行的代码,不管有没有异常产生都会执行

其中catch块可以有多个,finally可以有0或者1个,但是catch块和finally块两者必须至少有一个,两者可以同时存在

例如:

static void Main(string[] args)
{
	int[] officially = { 20, 20, 20, 20 };
	int num = officially[4];
}

发现有名为IndexOutOfRangeException的异常

static void Main(string[] args)
{
	try
	{
		int[] officially = { 20, 20, 20, 20 };
		int num = officially[4];
	}
	catch(IndexOutOfRangeException)
	{
		Console.WriteLine("It's IndexOutOfRangeException");
	}
	finally
	{
		Console.WriteLine("This is finally");
	}

输出为
在这里插入图片描述
并且将int num = officially[4];中越界的officially[4]改为officially[3]之后(即无异常出现之后),finally依然会执行,此时输出为
在这里插入图片描述

2.异常处理

案例:
计算用户输入的两个整数的和。
(若输入字母,小数则出现异常)

做法:利用while、try和break来控制异常输入,若用户输入异常,则提醒用户重新输入,若输入正确则输入第二个数字,对第二个数字进行同样的做法,最后计算出和。
代码:

int num1, num2;
//输入第一个数
while (true)
{
	try//当try块中的一条代码发生异常时,其后剩余代码都不会再执行了
{
	num1 = Convert.ToInt32(Console.ReadLine());
	break;
}
catch
{
	Console.WriteLine("Please type the number again");
}
//break;注意break不能写在try外,否则不管发不发生异常其都会执行
}
//输入第二个数
while (true)
{
	try
	{
		num2 = Convert.ToInt32(Console.ReadLine());
		break;
	}
	catch
	{
		Console.WriteLine("Please type the number again");
	}
}
int sum = num1 + num2;
Console.WriteLine(sum);

编译结果如下
在这里插入图片描述

3.类

定义
类的成员包括数据成员和函数成员

  • 数据成员
    包含类的数据——字段,常量和事件的成员
  • 函数成员
    提供了操作类中数据的某些功能(方法,属性,构造方法和终结器(析构方法),运算符,索引器)

声明

  • 字段的声明
    访问修饰符 类型 字段名称;

  • 方法的声明
    访问修饰符 返回值类型 方法名称(参数)
    {
    //方法体
    }

如果要使用一个类的话,要先引入它所在的命名空间,若类在当前命名空间下则不需要引入

自己定义的类要先进行初始化,需要使用new加上类名

Gods god;
god = new Gods();//对象的初始化
god.name = "LJY";
Console.WriteLine(god.name);

如果我们直接在方法内部访问同名的变量的时候,优先访问最近的变量(即形参而不是类的字段或方法),但可以用this.表示访问的是类的字段或方法

public void Set(float x)
{
	//x=x;//访问的都是形参
	this.x=x;
}
4.构造函数

声明一个和所在类同名的方法,但是该方法没有返回类型。当我们使用new关键字创建类的时候(即比如Vector3 v1 = new Vector3() ;)就会调用构造方法。

一般构造方法用于进行初始化数据的操作。

当我们不写任何构造函数的时候,编译器会提供给我们一个默认的无参构造函数,但是如果我们定义了一个或多个构造函数,编译器就不再提供默认的构造函数。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值