namespace 异常捕获
{
internal class Program
{
static void Main(string[] args)
{
/*
* try 尝试
* catch 捕获
* exception 例外
*/
//错误有两种 运行时错误 和 编译错误
//运行错误是看不到的 需要程序运行时才能知道代码是否错误
//编译错误是我们可以通过编译器直接看到的错误
//编译错误常见就是语法出错 类型不对 数据不存在
// C# 是一种编译型语言, 代码需要通过编译器译成机器可以识别的代码才能运行
//int a = "1"; //编译错误 可以直接看到
//int a = 代码语句没写完造成编译错误
/*
//运行错误
string str = "abc";
// 整个代码在编译时无法发现错误 但是程序运行时 会出错
//因为 int.Parse 在运行解析的字符串 不符合 数据类型规则 故而解析错误
//但是这个错误只能在运行时发现 因此这种错误被称为运行错误
int num = int .Parse(str);
Console.WriteLine(num * 10);
Console.ReadLine();
*/
//_03_异常捕获 捕获的是运行时的错误
Console.WriteLine("请输入一个数字");
int num = int.Parse(Console.ReadLine());
try
{
//尝试运行的代码 可能会出错
num = int.Parse(Console.ReadLine());
}
catch (Exception)
{
Console.WriteLine("你输入的数字不合法" );
//当尝试运行的代码出错是时,运行 catch 中的代码
//throw;
}
Console.WriteLine("你输入的数字是:" + num);
Console.ReadLine();
//作用域是一个代码块,通常指数据作用的代码块区域。所谓的代码块就是通过一个大括号 {} 包裹起来的代码
//一个花括号包裹起来的内容就是一个代码块
//作用域。 数据被创建时有一定的作用区域 一般只会在声明变量的代码块中使用
int n;
int num = 0;
if (true)
{
n = 0;
int a = 10;
Console.WriteLine(a);
Console.WriteLine(num);
//代码块的内部可以使用代码块外部的变量
//int a = 10;
//变量不能够重复声明
//int num = 0;
//不能重复声名变量 代码块外部的变量也不能在代码块内部重复声明
}
//在代码块对的外部不能使用代码块内部的变量
//Console.WriteLine(a);
作用域和代码块
if (true)
{
//不同代码块之间可以重名
//不同代码之间 代码相互隔离 变量不会相互影响
int a = 10;
Console.WriteLine(a);
//想要获取到不同作用域 中的数据 需要 提升变量。 将变量放在两个作用域都能获取的区域
Console.WriteLine(n);
}
/*
作用域
//作用域。 数据被创建时有一定的作用区域 一般只会在声明变量的代码块中使用变量的值
1. 代码块内部可以使用代码块外部的变量
2. 代码块外部无法使用代码块内部的变量
3. 代码块和代码块之间的代码可以相互独立 互不影响
变量
1. 变量只能作用于当前的代码块及后代的代码块中
2. 变量在同一作用域中只能声明一次 不能重复生明 变量名称不能重名
3. 变量在不同的作用域中 可以重名
如果需要再不同作用域中获取数据,则需要将变量提升到两个或多个作用域都能获取到的作用域空间中
*/
}
}
}