今天按着书上的例子写呀写,写了一下午终于做出了一个三层模式的通讯录(当然很简单),但是,弄了最后却碰到个运行时的

异常,弄得我这个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相关推荐

  1. InitializeComponent System.StackOverflowException

    因为一直重复调用了InitializeComponent,WPF报System.StackOverflowException错误,提示死循环似的调用.经过一阵排查得出下面结论: 避免在隐藏代码中使用O ...

  2. “System.StackOverflowException”类型的未经处理的异常处理办法

    "System.StackOverflowException"类型的未经处理的异常处理办法 在项目中,遇到一个这样的问题:C#调用C++dll,编译正常,运行时候当调用到C++的时 ...

  3. system.exception所有子类详解

    一直以来写代码抛出的异常都用的exception,从来没有像书上教的那样具体可能是啥异常就抛对应的异常,最后才说用的exception异常类抛异常.前段时间整理代码的时候突然感觉好像从来也就没有对异常 ...

  4. 教你如何找出 .NET 进程中的所有托管异常

    大家应该知道 .NET异常 本质上就是一个 Object 对象,也就是说只要你执行了 new XXException() 语句,那么它就会分配到 GC Heap 上. 这也就意味着,如果你有一个进程的 ...

  5. .net 常见异常及其翻译

    System.Exception //所有异常的基类型 System.ApplicationException //发生非致命应用程序错误时引发的异常 System.SystemException / ...

  6. 【基础】C#异常处理的总结

    一.异常处理的理解? 异常处理是指程序在运行过程中,发生错误会导致程序退出,这种错误,就叫做异常. 因此处理这种错误,就称为异常处理. 二.异常处理如何操作? C# 异常处理时建立在四个关键词之上的: ...

  7. 如何把 .NET 进程中的所有托管异常找出来?

    大家应该知道 .NET异常 本质上就是一个 Object 对象,也就是说只要你执行了 new XXException() 语句,那么它就会分配到 GC Heap 上. 这也就意味着,如果你有一个进程的 ...

  8. 写了多年代码,你会 StackOverflow 吗

    写了多年代码,你会 StackOverflow 吗 Intro 准备写一个傻逼代码的系列文章,怎么写 StackOverflow 的代码,怎么写死锁代码,怎么写一个把 CPU 跑满,怎么写一个 Out ...

  9. 常见的C#异常及其修复方法

    常见的C#异常及其修复方法 如果您今天是依靠编写的软件来谋生,那么您可能至少对异常的概念很熟悉. Jeff Atwood曾经称它们为"现代编程语言的基础".异常[1]是现代软件开发 ...

最新文章

  1. Windbg+Vmware/VirutalBox内核调试加速工具VirtualKD
  2. Android:EditText 属性
  3. git新建项目并push进去
  4. rmi远程反序列化rce漏洞_Oracle WebLogic 反序列化远程命令执行漏洞预警
  5. 数字三角形(洛谷-P1118)
  6. 实验验证离散余弦变换和简单压缩应用,显示对应的原图,dct图和恢复的图像
  7. Javaweb学习笔记——使用Jdom解析xml
  8. 如何招到烂程序员(续)
  9. 《逻辑与计算机设计基础(原书第5版)》——1.4 算术运算
  10. c语言中find的作用,c语言find函数的用法详解
  11. Visual Studio vs软件下载 vax Visual Assist X VAssistX
  12. 让你提前认识软件开发(39):软件研发之殇
  13. 微服务实施笔记(五)——生产环境部署
  14. XELA ROBOTICS 发布Uskin 皮肤触觉传感器
  15. 数据结构考研:电脑磁盘碎片的定义、产生原理和清理原因(文件碎片/机械硬盘/固态硬盘/硬盘清理/计算机/软件工程/王道论坛)
  16. 编写程序体重身高输入和输出C语言,(C语言程序设计实验.doc
  17. XSD文件与xml 文件
  18. GBase 8s灾备集群HAC (四) 异地灾备RSS
  19. 一文看明白IC 芯片全流程:从设计、制造到封装
  20. createjs 使用方法简介

热门文章

  1. 笔记本电脑维修90个精选实例
  2. linux命令忽略大小写zip,Linux基础命令---unzip
  3. 《量化投资策略如何现额益简及PDF电子书下载
  4. U3D_API_解析
  5. python读取加密word_Python 实现加密过的PDF文件转WORD格式
  6. excel2016打开空白解决方法
  7. (3)聚类算法之DBSCAN算法
  8. SpringBoot模拟单点登录
  9. Realtek WiFi concurrent 模式介绍
  10. iOS 一一 触摸事件和手势