我确信我们在某个时间或某个时间都收到了非常模糊的"对象引用未设置为对象的实例"异常.识别出问题的对象通常是设置断点和检查每个语句中的所有成员的繁琐任务.
有没有人有任何技巧可以通过编程手段或其他方式轻松有效地识别导致异常的对象?
- 编辑
看起来我像模样异常=).关键是_不必调试应用程序以找到错误的对象.编译器/运行时确实知道该对象已被分配/声明,并且该对象尚未被实例化.有没有办法在捕获的异常中提取/识别这些细节
@ W. Craig Trader
您的解释是设计问题的结果可能是我能得到的最佳答案.我对防御性编码非常强迫,并且在经过一段时间修复我的习惯之后设法摆脱了大部分这些错误.其余的只是把我调整到最后,并引导我将这个问题发布给社区.
谢谢大家的建议.
我非常喜欢微软承诺将MVC引入网络这一事实.为此,我对将我现有的一个ASP.NET应用程序转换为MVC感到兴奋,并想知道我是否可能会开枪.虽然这个网站使用的是MVC,但它在技术上还处于测试阶段...你的想法是什么?
PowerShell绝对属于动态语言类别,但它会被认为是强类型的吗?
我已经开始使用Visual Studio 2008,它一直要求我每次打开时将我的2.0网站项目升级到3.5 .
在我的C#应用程序中,我使用Microsoft Jet OLEDB数据提供程序来读取CSV文件.连接字符串如下所示:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\Data;Extended Properties="text;HDR=Yes;FMT=Delimited
Run Code Online (Sandbox Code Playgroud)
我使用该连接字符串打开ADO.NET OleDbConnection,并使用以下命令从CSV文件中选择所有行:
select * from Data.csv
Run Code Online (Sandbox Code Playgroud)
当我打开OleDbDataReader并检查它返回的列的数据类型时,我发现堆栈中的某些东西试图根据文件中的第一行数据猜测数据类型.例如,假设CSV文件包含:
House,Street,Town
123,Fake Street,Springfield
12a,Evergreen Terrace,Springfield
Run Code Online (Sandbox Code Playgroud)
为House列调用OleDbDataReader.GetDataTypeName方法将显示该列已被赋予数据类型"DBTYPE_I4",因此从中读取的所有值都将被解释为整数.我的问题是House应该是一个字符串 - 当我尝试从第二行读取House值时,OleDbDataReader返回null.
如何判断Jet数据库提供程序或OleDbDataReader将列解释为字符串而不是数字?
我正在使用cacheCounter
in CakePHP
,它会增加相关字段的计数器.
例如,我有一个Person表一个Source表.Person.source_id映射到Source表中的一行.每个人都有一个Source,每个Source都没有或很多Person行.
cacheCounter
当我改变一个人的一个来源的价值时工作得很好.它递增Source.Person_Count
.凉.
但是当它递增时,它会将其添加到人的目标源,但不会将其从旧值中删除.我试过updateCacheControl()
了afterSave
,但那没有做任何事情.
那么我在我的模型中编写了一些代码afterSave
来减去源source_id,但即使我甚至没有改变它,它总是这样做source_id
.(所以计数变为负数).
我的问题:有没有办法判断模型中的字段是否已更改CakePHP
?
ASpell有什么好的替代品吗?这是一个很好的开源,但暂时没有更新.性能不太好,我在创建非字母字符的自定义工作清单时遇到问题.
我必须恢复在MySQL 5.0中无意中DROPped的数据库.从检查备份文件,我似乎只有.FRM文件来保存数据库数据.
任何人都可以建议这是否是我需要从备份执行数据库恢复/导入,还是有其他文件我应该完成这个?
在我尝试过的每个MVC框架中(Rails,Merb,Waves,Spring和Struts),请求(和响应)的概念与请求的HTTP概念相关联.也就是说,即使有一个AbstractRequest是Request的超类,AbstractRequest也有标题,请求方法(GET,POST等)以及与HTTP相关的所有其他内容.
我想支持SMS,Twitter,电子邮件或任何其他可以制作适配器的媒体的请求 - 响应周期.是否有一个特别好的框架?
我想到的唯一另一个选择是创建,例如,在单独的线程中运行的Twitter轮询器,并将消息转换为本地HTTP请求,然后将响应发送回去.
如果是多个请求媒体一个很好的框架,你会路由选择什么样子的?在Rails中,HTTP路由看起来像:
map.connect 'some/path/with/:parameter_1/:paramter_2', :controller => 'foo', :action => 'bar'
Run Code Online (Sandbox Code Playgroud)
Twitter或SMS路线怎么样?正则表达式匹配关键字和参数?
例如,我有这样的查询:
Query q = sess.createQuery("from Cat cat");
List cats = q.list();
Run Code Online (Sandbox Code Playgroud)
如果我尝试做这样的事情,它将显示警告"类型安全:类型列表的表达式需要未经检查的转换以符合列表":
Type safety: The expression of type List needs unchecked conversion to conform to List<Cat>
List<Cat> cats = q.list();
Run Code Online (Sandbox Code Playgroud)
有没有办法避免它?