这个问题一直困扰着我.
让我们设想一个代表资源的类,为了能够使用这个资源,首先需要在其上调用'Open'方法,否则将抛出InvalidOperationException.
我的代码是否还要检查是否有人试图打开已经打开的资源,或者关闭已经关闭的资源?
代码是否应该防止逻辑上无效的调用,即使不会造成任何伤害?
我认为以这种方式编程有助于在另一方编写更好的代码,但我觉得我可能会承担太多责任并影响可重用性.
你们有什么感想?
编辑:
我不认为这可以被称为防御性编程,因为它不会让任何可能的错误使用滑动,并且将抛出另一个InvalidOperationException.
我想创建一个具有以下签名的函数:
public String createString(int length, char ch)
Run Code Online (Sandbox Code Playgroud)
它应该返回一串指定长度的重复字符.
例如,如果length为5且ch为'p',则返回值应为
public String createString(int length, char ch)
Run Code Online (Sandbox Code Playgroud)
有没有办法做到这一点,没有循环,直到它是所需的长度?
没有任何外部定义的常量?
作为标题,是否有一种快速方法可以在不停止断点的情况下运行代码一次?
我是否可以根据需要切换(我的意思是升级或降级)Amazon RDS实例,还是我必须重新创建并重新迁移?
在C++中引用"当前"对象的正确/适当的英语术语是什么.例如,假设您在此实现的主体中编写注释:
Thing Thing::operator+(const Thing& other)
Run Code Online (Sandbox Code Playgroud)
你有一个变量名"other"用于另一个对象,但你用什么单词/表达来引用正在进行操作的对象?
我正在回过头代码中的一些较小的TODO.其中一个是处理部分日期的类,例如2001年1月.它可以在我们的系统(1990 - 2099)中看到的日期工作正常,并且在其他日期优雅地失败.
我为自己留下的TODO是我在2100年及以后的世纪都没有处理日期.我真的不认为修复这个特定问题的努力是值得的,但我认识到Y2k的错误.如果我们已经在2080年了,我想我会以不同的方式思考并修复错误.
那么代码需要多长时间?我们应该在多大程度上规划我们的系统继续运行?
更新
好的,谢谢你的所有投入.我想我可以选择将TODO留在代码中,什么都不做.我发现最有趣的想法是:
我决定什么都不做的原因很简单.它增加了可忽略的商业价值,其他需要看的东西确实增加了价值所以我会先做它们,如果我有时间我会修复它,但实际上它只不过是一个学术练习.
我见过运营商!
使用过像!!
.例如
var filter = !!(document.body.filters);
如果我没错,它就等同于var filters = typeof document.body.filters != 'undefined'
什么?
这是一个好用的做法!!
吗?
控制台java应用程序 有人通过任务管理器杀死java.exe进程.在申请终止之前,我如何写入记录某些信息?
Thread.currentThread().setUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
public void uncaughtException(Thread t, Throwable e) { ..... }
});
Run Code Online (Sandbox Code Playgroud)
要么
Runtime.getRuntime().addShutdownHook(new Thread() {
public void run() { ..... }
});
Run Code Online (Sandbox Code Playgroud)
不要在这种情况下执行
我正在ASP .NET MVC 2中的Web项目上工作.
在这个项目中,我们将一些信息存储在一个ecripted cookie(ASPXAUTH cookie)中,以避免为每个请求查询db.
事情是这部分的代码突然停止工作.
我查看了对源控制服务器上的代码所做的任何可能导致它的更改,我一无所获.我甚至还原到了一个已知的工作副本(处理其他人PC,相同的代码等),但经过调试后,似乎.ASPXAUTH cookie不再被保存了.而是设置了ASP.NET_SessionId cookie ...(之前没有)
我更改了web.config文件以关闭sessionState.这消除了设置ASP.NET_SessionId cookie,但它仍然没有保存auth cookie.
我最近安装了一些Microsoft Windows XP更新,但另一个人(PC运行应用程序就好了)也做了.
谷歌搜索后,我发现一些信息指出了cookie的过期日期问题.以太网电脑没有合适的时间/日期(事实并非如此),而其他人则错误地设置了有效期限.(我检查过,它设置正确)...
除了使用(Chrome)之外的其他浏览器,问题仍然存在,我尝试使用IE6.
有关为什么会发生这种情况的任何想法?
我继续发布我能找到的任何有用的信息.
提前致谢.
为什么下一个示例抛出System.ArrayTypeMismatchException?
New Int16(){4,5,6}.Cast(of UInt16).ToArray()
Run Code Online (Sandbox Code Playgroud)
我希望这一行返回一个包含4,5和6的UInt16数组.
提前致谢.
exception ×2
java ×2
.net ×1
amazon-rds ×1
asp.net ×1
asp.net-mvc ×1
breakpoints ×1
c++ ×1
cookies ×1
ienumerable ×1
javascript ×1
string ×1
terminology ×1
vb.net ×1