StreamReader的异常处理

首先展开问题:

最近在负责一个文件内容解析的模块。其中有一段代码是将报文从文件通过StreamReader类

读取,并生成string。

如果只选择要读取得文件而不打开就会出现如下异常:

打开异常常规帮助:

在异常帮助中,可以看出:

1.异常的类型是:System.ArgumentNullException

2.异常的原因是:如果向方法传递空引用,而该方法不接受空引用为有效参数。空引用是对不存在的对象的引用,原因通常是还未以编程方式创建该对象的任何实例。

3.解决方法是:检查参数以确保它们不为空。

修改成只需加一个判断就可以避免这个错误了!呵呵

 if (FilePath != null)
            {
                StreamReader sr = new StreamReader(FilePath, Encoding.Default);
                string FileString = sr.ReadToEnd();
                string[] split = FileString.Split(new Char[] { ‘,‘, ‘*‘, ‘\t‘ });
                string GroundSpeed;
                string GroundCourse;
                for (int i = 0; i < split.Length; i += 9)
                {
                    if ("$GPRMC" == split[i])
                    {
                        // 获取了时间信息
                        label_End.Text = split[i + 1];
                        // 获取了航速和航向的字段
                        GroundSpeed = split[i + 7];
                        GroundCourse = split[i + 8];

                    }
                }
            }

  

时间: 2024-10-10 12:50:23

StreamReader的异常处理的相关文章

七天学会ASP.NET MVC (六)——线程问题、异常处理、自定义URL

本节又带了一些常用的,却很难理解的问题,本节从文件上传功能的实现引出了线程使用,介绍了线程饥饿的解决方法,异常处理方法,了解RouteTable自定义路径 . 系列文章 七天学会ASP.NET MVC (一)--深入理解ASP.NET MVC 七天学会ASP.NET MVC (二)--ASP.NET MVC 数据传递 七天学会ASP.NET MVC (三)--ASP.Net MVC 数据处理 七天学会ASP.NET MVC (四)--用户授权认证问题 七天学会ASP.NET MVC (五)--L

线程问题、异常处理、自定义URL

线程问题.异常处理.自定义URL 本节又带了一些常用的,却很难理解的问题,本节从文件上传功能的实现引出了线程使用,介绍了线程饥饿的解决方法,异常处理方法,了解RouteTable自定义路径 . 系列文章 七天学会ASP.NET MVC (一)——深入理解ASP.NET MVC 七天学会ASP.NET MVC (二)——ASP.NET MVC 数据传递 七天学会ASP.NET MVC (三)——ASP.Net MVC 数据处理 七天学会ASP.NET MVC (四)——用户授权认证问题 七天学会A

HttpWebRequest 抓取页面异常处理办法

抓取页面异常处理办法 public static string GetHtmlTest(string URI) { string fullhtml = null; while (true) { try { HttpWebRequest req = (HttpWebRequest)WebRequest.Create(URI); req.Method = "GET"; req.UserAgent = "Opera/9.25 (Windows NT 6.0; U; en)"

Laravel 5.4 中的异常处理器和HTTP异常处理实例教程

错误和异常是处理程序开发中不可回避的议题,在本地开发中我们往往希望能捕获程序抛出的异常并将其显示打印出来,以便直观的知道程序在哪里出了问题并予以解决,而在线上环境我们不希望将程序错误或异常显示在浏览器中(出于安全考虑),这个时候我们仍然要捕获异常,只不过不是显示到浏览器中,而是记录到日志中,方便日后排查问题. 百牛信息技术bainiu.ltd整理发布于博客园 Laravel当然支持PHP原生的错误和异常处理,但是在此基础上进行了一些封装处理,从而更方便在不同开发环境切换以及对错误和异常的处理.

跟着百度学PHP[11]-PHP当中的异常处理

首先要说一下常见的三种错误: 1.语法错误 2.运行错误 3.逻辑错误 00x1 错误报告及错误级别 PHP的错误分为三个等级 1.注意(notice)   没有变量a 2.警告(warning) 没有给函数传值 3.致命的错误(fatal error) 函数写错 错误的报告级别可以在PHP.ini当中修改.在PHP.ini当中找到错误报告“error_reporting = E_ALL ” 这个的意思是将所有的错误都提示出来.ps:~是除了的意思.&是和的意思.error_reporting

JAVASE02-Unit08: 文本数据IO操作 、 异常处理

Unit08: 文本数据IO操作 . 异常处理 * java.io.ObjectOutputStream * 对象输出流,作用是进行对象序列化 package day08; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectOutputStream; import java.util.ArrayList; import java.util.List; /** * java.io.Ob

python3_装饰器_异常处理

装饰器: def auth(func):     def wrapper(name):                     如果函数带参数,要加在这里         user=raw_input("input passwd:").strip()         if user=='test':             print "welcome login"             func(name)              如果函数带参数,要加在这里

动手动脑(异常处理)

1.请阅读并运行AboutException.java示例,然后通过后面的几页PPT了解Java中实现异常处理的基础知识. import javax.swing.*; class AboutException { public static void main(String[] args) { float i=1, j=0, k; k=i/j; System.out.println(k); try { k = i/j;    // Causes division-by-zero exceptio

异常处理

我们在使用Java语言高级API进行程序设计之前,我们还需要理解Java语言中另一个基础特色-----异常处理 异常(Exception)是程序在执行过程中所产生的问题.导致异常产生的原因有很多种: 用户输入了无效的数据.找不到一个需要打开的文件.在通讯过程中网络连接断开或者JVM发生了内存溢出 异常的分类: 检查异常-----是用户错误或不能被程序所遇见的问题 运行时异常-----是一个程序在运行过程可能发生的问题 错误-------实际上,错误根本不是异常,但却是用户或程序所无法控制的问题