System.StackOverflowException的一个例子(转)
今天按着书上的例子写呀写,写了一下午终于做出了一个三层模式的通讯录(当然很简单),但是,弄了最后却碰到个运行时的
异常,弄得我这个asp.net菜鸟郁闷了再郁闷.
异常如下:
发生类型为 System.StackOverflowException 的异常。
看了网上的资料说是,由于递归调用了自己.编译能够通过,但是运行会产生异常.
msdn上说:
关于异常的疑难解答:System.StackOverflowException
当嵌套的方法调用过多而导致执行堆栈溢出时,将引发 StackOverflowException 异常。
相关提示
确保您没有无限循环或无限递归。
过多的方法调用通常意味着存在非常深的递归或无限递归。
备注
您无法捕捉堆栈溢出异常,因为异常处理代码可能需要堆栈。当普通应用程序中发生堆栈溢出时,公共语言运行库 (CLR) 会
终止进程。
承载 CLR 的应用程序可以更改默认行为并指定 CLR 卸载发生异常的应用程序域,但允许进程继续进行。有关更多信息,请
参见 ICLRPolicyManager 和承载公共语言运行库。
我找啊找,找了好久......最后,一段代码一段代码的去执行,再补充点辅助调试的代码....
终于,发现了我这个类中当要得到CAddress这个值时就会引发异常.
using System;
namespace FSDataAccess
{
/// <summary>
/// ContactEntry 联系人实体
/// </summary>
public class ContactEntry
{
private int cID;//联系人编号
private string cName;//姓名
private string cAddress;//地址
private string cPhone;//电话
private string cEmail;//电子邮件
public ContactEntry()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
/// <summary>
/// 联系人编号
/// </summary>
public int CID
{
get{return cID;}
set{cID=value;}
}
/// <summary>
/// 姓名
/// </summary>
public string CName
{
get{return cName;}
set{cName=value;}
}
/// <summary>
/// 地址
/// </summary>
public string CAddress
{
get{return CAddress;}
set{cAddress=value;}
}
/// <summary>
/// 电话
/// </summary>
public string CPhone
{
get{return cPhone;}
set{cPhone=value;}
}
/// <summary>
/// 电子邮件
/// </summary>
public string CEmail
{
get{return cEmail;}
set{cEmail=value;}
}
}
}
不知道您在看了上面的public string CAddress{}之后有没有发现错误.这里我把return CAddress;中的CAddress首字母大写
了,应该是private成员cAddress,郁闷啊...想来,这里产生System.StackOverflowException 异常就不足为怪了(递归调用自
己)...
把public string CAddress{}
改成 public string CAddress
{
get{return cAddress;}
set{cAddress=value;}
}
就行了....学习今天到此为止..休息!!!
System.StackOverflowException的一个例子(转)的更多相关文章
- spring笔记--使用springAPI以及自定义类 实现AOP的一个例子
Spring的另一个重要思想是AOP,面向切面的编程,它提供了一种机制,可以在执行业务前后执行另外的代码,Servlet中的Filter就是一种AOP思想的体现,下面通过一个例子来感受一下. 假设我们 ...
- 对Jena的简单理解和一个例子
本文简单介绍Jena(Jena 2.4),使用Protégé 3.1(不是最新版本)创建一个简单的生物(Creature)本体,然后参照Jena文档中的一个例子对本体进行简单的处理,输出本体中的Cla ...
- Web服务,XFire的一个例子
Web服务优点 互操作性:实现不同系统间的相互调用(语言无关.平台无关) Web服务是什么 Web 服务是一类应用程序,是能够用编程的方法通过Web调用来实现某个功能的应用程序 Web服务的体系结构 ...
- JUnit 3一个例子就懂
JUnit is a simple framework to write repeatable tests. It is an instance of the xUnit architecture f ...
- Java编程思想中关于闭包的一个例子
Java编程思想中的一个例子,不是很理解使用闭包的必要性,如果不使用闭包,是不是有些任务就不能完成?继续探索. package InnerClass; interface Incrementable ...
- 从一个例子学习 instanceof 和 getclass 的区别
判断两个对象是否为同一类型,时常用到getclass 和 instanceof ,而这两个函数又是时常让人混淆.下面从一个例子说明两者的区别: public class Test_drive { pu ...
- 通过一个例子感受C# 6.0新特性
微软在Visual Studio 2015中更新C#语言到6.0,添加了很多很好的特性,以使C#语言继续跻身于最优秀语言之行列.下面通过一个例子快速感受一下C# 6.0的新特性,以下程序在VS2015 ...
- 一个例子搞清楚Java程序执行顺序
当我们new一个GirlFriend时,我们都做了什么? 一个例子搞懂Java程序运行顺序 public class Girl { Person person = new Person("G ...
- ReCap 360 photo照片建模技术的又一个例子
这是我做的又一个利用Autodesk ReCap 360 照片建模技术做的一个例子.你可以下载模型自己把玩,或者下载原始照片自己试一试. 拍摄工具: 小米手机 照片数量:约120张 后期处理工具: p ...
随机推荐
- IOS 中openGL使用教程3(openGL ES 入门篇 | 纹理贴图(texture)使用)
在这篇文章中,我们将学习如何在openGL中使用纹理贴图. penGL中纹理可以分为1D,2D和3D纹理,我们在绑定纹理对象的时候需要指定纹理的种类.由于本文将以一张图片为例,因此我们为我们的纹理对象 ...
- reference local jar & customize manifest
dependencies { compile files('libs/ghost4j-0.5.1.jar') compile files('libs/jai_imageio.jar') compile ...
- Struts2从一个action转到另一个action的两种方法
在Struts2中,Action处理完用户请求后,将会返回一个字符串对象,这个字符串对象就是一个逻辑视图名.Struts 2通过配置逻辑视图名和物理视图之间的映射关系,一旦系统收到Action返回的某 ...
- POI 设置
FileOutputStream fos = new FileOutputStream("D:\\15.xls"); HSSFWorkbook wb = new HSSFWorkb ...
- IT在线笔试总结(二)
1. 循环队列的长度计算:对于非循环队列,尾指针与头指针的差值便是队列长度,而对于循环队列,差值可能为负数,因此需要将差值加上MAXQSIZE再与MAXQSIZE求余. 2. 算法的时间复杂度取决于: ...
- asp.net的JSONHelper 类
调用方法: ){ jsons = json.ToString();}else{ jsons = @"{success:false}";}return jsons; JS ...
- asp.net 新项目遇到的坑
1.新拿来的项目,能正常跑,但是想熟悉,运用断点调试,f11却发现出了这个问题 此提示:应该是缺失dll文件 2.于是重新生成项目出现,发现Log4Net,有文件,但是出现这个提示 思考:一版本不对 ...
- maven本地安装jar包同时生成pom文件
maven 本地安装jar包:mvn install:install-file -Dfile=本地路径/ojdbc12.jar -DgroupId=com.oracle -DartifactId=oj ...
- solr清空全部索引
http://blog.csdn.net/qing419925094/article/details/42142117
- MySQL_监控用户下单地址没有就近仓库配送情况_20161215
如果用户所在的地址位于A市场,A市场所就近的仓库应该为a,通过监控发现用户下单后配送仓库的不是a而是b仓库发货,这就会引起物流成本的增加. 因此对客户下单挑选最近的仓库进行监控是很有必要的 #C041 ...