当前位置:首页 > 实用技巧 >

文件不存在是怎么回事(文件路径不存在怎么办)

来源:原点资讯(www.yd166.com)时间:2023-10-31 13:04:12作者:YD166手机阅读>>

C#异常基类--Exception类

C#中的异常处理是一种非常重要的错误处理机制,它可以帮助我们更好地管理程序中的错误和异常情况,提高程序的稳定性和可靠性。

在C#中,Exception类用于表示在应用程序执行期间出现的错误。

Exception类定义 命名空间: System 程序集: System.RunTime.dll

Exception类是所有异常的基类。 发生错误时,系统或当前正在执行的应用程序会引发包含错误相关信息的异常来报告错误。 引发异常后,由应用程序或默认异常处理程序处理。

  • Exception类的属性

Data

获取键/值对的集合,这些键/值对提供有关该异常的其他用户定义信息。

HelpLink

获取或设置指向与此异常关联的帮助文件链接。

HRESULT

获取或设置 HRESULT(一个分配给特定异常的编码数字值)。

InnerException

获取导致当前异常的 Exception 实例。

Message

获取描述当前异常的消息。

Source

获取或设置导致错误的应用程序或对象的名称。

StackTrace

获取调用堆栈上的即时框架字符串表示形式。

TargetSite

获取引发当前异常的方法。

  • Exception类的方法

Equals(Object)

确定指定对象是否等于当前对象。

(继承自 Object)

GetBaseException()

当在派生类中重写时,返回 Exception,它是一个或多个并发的异常的根本原因。

GetHashCode()

作为默认哈希函数。

(继承自 Object)

GetObjectData(SerializationInfo, StreamingContext)

当在派生类中重写时,用关于异常的信息设置 SerializationInfo。

GetType()

获取当前实例的运行时类型。

MemberwiseClone()

创建当前 Object 的浅表副本。

(继承自 Object)

ToString()

创建并返回当前异常的字符串表示形式。

文件不存在是怎么回事,文件路径不存在怎么办(1)

Exception类

错误和异常

运行时错误可能由于各种原因而发生。 但是,并非所有错误都应作为代码中的异常进行处理。 下面是在运行时可能发生的一些错误类别,以及响应这些错误的适当方法。

  • 程序错误。 程序错误是运行时错误,无法通过编写无 bug 代码来避免此错误。

在某些情况下,程序错误可能会反映预期的或例程错误条件。 在这种情况下,可能希望避免使用异常处理来处理程序错误,需要进行重试操作。

示例1:如果用户需要输入特定格式的日期,则可以通过调用 DateTime.TryParseExact 方法分析日期字符串,该方法返回一个Boolean值,该值指示分析操作是否成功,而不是使用 DateTime.ParseExact 方法,如果日期字符串无法转换为DateTime值,该方法将FormatException引发异常。

示例2:如果用户尝试打开不存在的文件,可以首先调用 File.Exists 方法来检查文件是否存在,如果不存在,则提示用户是否要创建该文件。

在其他情况下,程序错误反映了可以在代码中处理的意外错误条件。 例如,即使已检查以确保某个文件存在,也可能在打开该文件之前将其删除,或者该文件可能已损坏。 在这种情况下,尝试通过实例化 StreamReader 对象或调用 Open 方法打开文件可能会引发 FileNotFoundException 异常。 在这些情况下,应使用异常处理从错误中恢复。

  • 系统故障。 系统故障是运行时错误,无法以有意义的方式以编程方式进行处理。

示例:如果程序运行时无法分配额外的内存,则任何方法都可能会引发 OutOfMemoryException 异常。 通常,系统故障不使用异常处理来处理。 相反,你可能能够使用事件(例如 AppDomain.UnhandledException 并调用 Environment.FailFast 方法)来记录异常信息,并在应用程序终止之前通知用户失败。

Try/catch 捕获及处理异常方法

在C#中,异常处理使用try-catch语句来实现。try语句包含可能会抛出异常的代码,而catch语句则包含处理异常的代码。当try中的代码抛出异常时,程序会立即跳转到相应的catch语句中执行异常处理代码。可以有一个或多个 catch 块,每个块都设计用于处理特定类型的异常,或者一个块旨在捕获比另一个块更具体的异常。每个 catch 块都包含一个类型筛选器,用于确定它处理的异常类型。

当块中 try 发生异常时,系统会按它们在应用程序代码中出现的顺序搜索关联的 catch 块,直到找到 catch 处理异常的块。 catch如果 catch 块的类型筛选器指定T或派生自的任何类型,T则块将处理 类型的T异常。 系统在找到处理异常的第一个 catch 块后停止搜索。 出于此原因,在应用程序代码中, catch 必须在处理其基类型的块之前 catch 指定处理类型的块,如本节后面的示例所示。 最后指定处理 System.Exception 的 catch 块。

文件不存在是怎么回事,文件路径不存在怎么办(2)

Try/catch 捕获及处理异常方法

以下是一个简单的异常处理范例:

try { // 可能会抛出异常的代码 int x = 10 / 0; //这里会抛出一个DivideByZeroException异常 } catch (DivideByZeroException ex) { // 处理异常的代码 Console.WriteLine("发生除以零的错误:" ex.Message); }

在上面的例子中,try中的代码会抛出一个DivideByZeroException异常,当这个异常发生时,程序会立即跳转到catch语句中,并执行相应的异常处理代码。在catch语句中,我们通过ex参数获取了异常的详细信息,并打印出来。

异常类作用

异常类的作用有:

  • 描述错误的文本。 发生异常时,运行时会提供一条文本消息,以通知用户错误的性质,并建议解决问题的操作。此文本消息保存在异常对象的Message属性 中。
  • 引发异常时调用堆栈的状态。 属性 StackTrace 包含一个堆栈跟踪,该跟踪可用于确定错误在代码中的位置。 堆栈跟踪列出所有调用的方法以及进行调用的源文件中的行号。
异常类属性

类Exception包含许多属性,这些属性可帮助标识代码位置、类型、和异常原因等,如StackTrace、InnerException、Message、HelpLink、HResultSource、 TargetSite和 Data。

常见的异常类型

下表列出了常见的异常类型以及引发这些异常的条件:

异常

条件

ArgumentException

传递给方法的非 null 参数无效。

ArgumentNullException

传递给方法的参数为 null。

ArgumentOutOfRangeException

参数超出了有效值的范围。

DirectoryNotFoundException

目录路径的一部分无效。

DivideByZeroException

整数或 Decimal 除法运算中的分母为零。

DriveNotFoundException

驱动器不可用或不存在。

FileNotFoundException

文件不存在。

FormatException

值的格式不合适,无法通过等 Parse转换方法从字符串转换。

IndexOutOfRangeException

索引超出数组或集合的边界。

InvalidOperationException

方法调用在对象的当前状态下无效。

KeyNotFoundException

找不到用于访问集合中成员的指定键。

NotImplementedException

未实现方法或操作。

NotSupportedException

不支持方法或操作。

ObjectDisposedException

对已释放的对象执行操作。

OverflowException

算术、强制转换或转换运算会导致溢出。

PathTooLongException

路径或文件名超过系统定义的最大长度。

PlatformNotSupportedException

当前平台上不支持该操作。

RankException

将具有错误维度数的数组传递给方法。

TimeoutException

分配给操作的时间间隔已过期。

UriFormatException

使用了无效的统一资源标识符 (URI) 。

栏目热文

没有文件怎么解决(进不去找不到文件怎么办)

没有文件怎么解决(进不去找不到文件怎么办)

windows找不到文件怎么办?这样的问题可以分为以下情况:一是某程序卸载以后,注册表中残留有信息;二是系统中了病毒,下...

2023-10-31 13:33:30查看全文 >>

电脑忘记密码强制开机视频(电脑忘了开机密码怎么强制开机)

电脑忘记密码强制开机视频(电脑忘了开机密码怎么强制开机)

第二天,两人拍摄完风景回到家中,发现门口有一个包裹。他们以为是买的硬盘到了,于是打开门。然而,当他们输入解锁密码时,警报...

2023-10-31 12:58:46查看全文 >>

忘记电脑开机密码开不了机(电脑忘记了密码开不了机怎么办呢)

忘记电脑开机密码开不了机(电脑忘记了密码开不了机怎么办呢)

小伙伴们有没有遇到过记不住电脑开机密码,进不了系统的情况啊!今天就给大家详细教学一下怎么处理这个问题:准备工具:1、U盘...

2023-10-31 13:11:32查看全文 >>

电脑开机密码忘记无法开机怎么办(电脑忘记密码无法开机怎么办)

电脑开机密码忘记无法开机怎么办(电脑忘记密码无法开机怎么办)

你是否也遇到过电脑忘记了开机密码无法进入系统,却又不知道如何解锁,但你又急用电脑,这时该怎么办?用最粗暴的方式重装系统吗...

2023-10-31 13:17:07查看全文 >>

电脑忘记开机密码怎么强制打开(电脑设置开机密码忘记了怎么开机)

电脑忘记开机密码怎么强制打开(电脑设置开机密码忘记了怎么开机)

这几天,那不闲来无事看到那台已被我遗忘很久的电脑,距离上次开机还是几个月之前……所以趁着这个风和日丽的下午,不如搞上几把...

2023-10-31 13:11:06查看全文 >>

文件还在软件不在(文件下载没动静了)

文件还在软件不在(文件下载没动静了)

“郊”者,处于城邑以外。郊区,靠近城市并受城市行政机构管辖的区域。当我们在日常生活中说起“到郊区去”,一般指的是某种具备...

2023-10-31 13:07:42查看全文 >>

文件在后台不显示(文件不显示界面但是后台显示)

文件在后台不显示(文件不显示界面但是后台显示)

本报讯(记者 温婧)2月16日,有用户在微博拍摄视频,称京东金融APP会保存用户的截屏图片在自己的文件夹内,因此质疑京东...

2023-10-31 12:55:13查看全文 >>

文件在d盘怎么办(文件装入d盘但是打不开)

文件在d盘怎么办(文件装入d盘但是打不开)

“很奇怪哎,我的电脑c盘空间还很多,但是d盘却变红了。因为d盘太多文件了,我不敢随便进行删除,有什么清理d盘的简单方法吗...

2023-10-31 13:18:57查看全文 >>

路径不存在怎么解决(目标路径不存在怎么解决)

路径不存在怎么解决(目标路径不存在怎么解决)

3dmax打开出现“以下配置路径不存在”的问题该如何解决呢?本文小编将和大家分享解决3dmax软件打开出现“以下配置路径...

2023-10-31 13:23:23查看全文 >>

文件没打开(文件打开了打不开)

文件没打开(文件打开了打不开)

(中央纪委国家监委网站 邢婷婷 张舒谊 李芸 李红)来源: 中央纪委国家监委网站,...

2023-10-31 13:40:36查看全文 >>

文档排行