C#中怎么捕获串口的连接的异常是属于哪种异常,例如不存在或者被占用.

如题所述

第1个回答  推荐于2016-11-10
SerialPort sp=new SerialPort();
try{sp.Open();}
catch(Exception ex)
{
MessageBox.Show(ex);
}
异常条件
InvalidOperationException指定的端口已打开。
ArgumentOutOfRangeException此实例的一个或多个属性无效。
例如,Parity、DataBits 或 Handshake 属性不是有效值;BaudRate 小于或等于零;ReadTimeout 或 WriteTimeout 属性小于零且不是 InfiniteTimeout。
ArgumentException端口名称不是以“COM”开始的。- 或 -端口的文件类型不受支持。
IOException此端口处于无效状态。 - 或 - 尝试设置基础端口状态失败。
例如,从此 SerialPort 对象传递的参数无效。
UnauthorizedAccessException对端口的访问被拒绝。追问

异常内容的信息需要自己去写,所以要知道具体哪种异常是通过InvalidOperationException、ArgumentOutOfRangeException、ArgumentException、IOException、UnauthorizedAccessException中的哪个捕获到的,我在获得串口不存在的时候,当我把该串口拔掉的时候,发现它一开始捕获的是UnauthorizedAccessException中的信息,然后再点击一下才捕获到IOException中的信息。这是为什么?

本回答被提问者采纳

C#中怎么捕获串口的连接的异常是属于哪种异常,例如不存在或者被...
SerialPort sp=new SerialPort();try{sp.Open();} catch(Exception ex){ MessageBox.Show(ex);} 异常条件 InvalidOperationException指定的端口已打开。ArgumentOutOfRangeException此实例的一个或多个属性无效。例如,Parity、DataBits 或 Handshake 属性不是有效值;BaudRate 小于或等于零;ReadTimeout 或...

如何解决C#中. net无法捕捉异常的问题?
一、很可能的原因就是:你的应用程序出现了异常,而.net没有或者无法捕捉该异常,所以导致出现如下情况:1、双击可执行程序,没有反应。2、此时去任务管理器中会看到一个DW20.exe的进程,不久会自动消失。3、到事件查看器里面会发现类似EventType clr20r3 P1...P2...PN的错误提示。二、解决方案:...

C#窗体中出现文件未找到的异常怎么处理
用try catch来扑捉异常。就不会出现一样了。然后提示用户文件找不到。或者加载文件的时候先检查一下文件是否存在。再进行读写操作。

C#中,如何捕获系统调用的异常
使用try catch就可以捕获异常

C#中如何判断异常的类型
可以使用异常语句catch( Exception ex)获取异常,然后通过ex.GetType()得到异常的类型,代码如下所示:try{ int b = 0; int a = 100 \/ b;}catch( Exception ex){ MessageBox.Show( ex.GetType().ToString());}运行如下:

如何判断串口链接正常 C#
try { p.Open(); label6.Text = "正常"; } catch { label6.Text = "异常"; } if (label6.Text == "正常") p.Close(); ……没反吧。我意思是:如果串口如果异常,则重连。。。p.open()如果不能正常执行,说明串口正在被使用,则链接正常啊。就会捕捉到异常,执行CATCH ...

c# .net 捕获读写文件失败异常,怎么写?捕获关闭文件失败异常,怎么...
try {...} catch(IOException ex){ \/\/catch里写你捕获到异常的语句 \/\/ 例如一旦捕获异常把异常信息显示出来 Console.WriteLine(ex.ToString());} catch(Exception ex){ \/\/catch里写你捕获到异常的语句 \/\/ 例如一旦捕获异常把异常信息显示出来 Console.WriteLine(ex.ToString());} ...

c#access数据库异常处理
一般程序中的异常处理是指处理不可预料的异常,通常是由于未考虑到的某个方面导致了某种异常的出现。而异常处理:分为很多种,一般情况下可以用Catch(Exception e)来捕获所有的异常。如果是底层的话,可以throw 出来,让上层调用方法去处理异常。如果要处理直接在catch块中写上处理方法即可。第二种是很...

c# 串口读没有接收到数据的接收数据缓冲区如何捕捉异常?
通过设置ReadTimeout属性解决你的问题。代码如下 SerialPort com = new SerialPort("COM1");\/\/ 设置读取超时为5秒(5000毫秒)com.ReadTimeout = 5000;try{ com.Read(receiveData, 0, readStatus[5]*2+5);}catch(TimeoutException){ \/\/超时无数据异常处理} ...

如何使用C#检测某个串口(COM)是否被占用
用SerialPort类去打开那个串口 如果串口被占用,那么会抛出异常,这样你就可以判断了

相似回答