我知道
throw new Exception();
有一个相当大的开销,因为它创建了一个完整的堆栈跟踪,等
不
throw new Throwable();
出现同样的问题?此行为是继承的,还是抛出Throwable的开销较小(否)?
编辑
从 分析师的 角度来看,用户输入错误的密码是程序正常执行顺序的例外。所以,如果我有:
public Session newSession() {
validate_user_and_password();
}
从 分析师的 角度来看,抛出UserNotValidException听起来是正确的。如果您的代码具有很好的抽象性,则
返回null
或0
听起来不正确。我只是想知道我是否可以在代码中实际实现它,还是只需要理论来解决这个问题。
编程观点异常和分析师观点异常之间有很好的区别。
注意:我给出了一个非常简单而愚蠢的示例,这不是我的情况。
注2:我知道返回null
将是很平常的事情,但是我必须具有正确的抽象和OO代码,而且我个人对此没有害处。
Throwable
在创建时也会创建一个堆栈跟踪。从Java文档中获取Throwable
:
throwable包含创建线程时执行线程堆栈的快照。
因此,在关于创建堆栈跟踪开销方面,应该是没有什么区别Exception
和Throwable
。
如果您将异常用于“异常事件”(应该如此),那么您就不必太在意堆栈跟踪的开销。例外事件很少在运行代码中发生。因此,异常不应以任何重大方式影响正常代码的性能。
问题内容: 我想知道与ArrayList相比,Java HashMap的内存开销是多少? 更新: 我想提高搜索相同对象的大包装(600万以上)的特定值的速度。 因此,我正在考虑使用一个或多个HashMap而不是使用ArrayList。但是我想知道HashMap的开销是多少。 据我了解,密钥不是存储的,只是密钥的哈希,因此它应该类似于 对象的哈希大小+一个指针 。 但是使用什么哈希函数?是对象提供的
我是PHP的新用户。我在一些PHP上工作project.want一些关于PHP会话的帮助。我有login.html页面的形式动作执行login.js.登录时执行,用户名和密码已请求urllogin.php页面检查用户名 我在登录时启动了session_start()。php。我已与print\r(美元会话)进行了核对;对于会话,未在上启动。但这是一个开始。当我搬家的时候。这是行不通的。我在家里查。
问题内容: 我正在读取一个小的文本文件: 效果很好,但这不是完全可移植的。就我而言,我要打开的文件位于我的GOPATH中,例如: 由于该文件夹位于源代码的旁边,因此我只想指定相对路径: 但是然后我得到这个错误: 恐慌:打开数据/文件。txt:没有此类文件或目录 如何使用文件的相对路径打开文件,尤其是当文件与我的Go代码一起存在时? ( 请注意,我的问题特别是关于打开相对于GOPATH的 文件 。
本页列出了所有Apache遵守的相关标准,并伴有简要描述。 除了下面列出的参考信息,下列资源也值得看看: http://purl.org/NET/http-errata - HTTP/1.1 勘误表 http://www.rfc-editor.org/errata"http://ftp.ics.uci.edu/pub/ietf/http/"> http://ftp.ics.uci.edu/pub/
问题内容: 我想在C中分配一些内存,并使其与Java对象实例相关联,如下所示: 然后在Java对象被垃圾回收时释放内存-我可以通过从Java对象的 finalize() 方法调用JNI函数来实现。 问题是,如何将C指针与java对象关联?在对象中保留一个 长 字段并将指针强制转换为 long ?有没有更好的办法? 问题答案: 通常,如果要将指针从C转移到Java,建议使用,以便在平台为64位的情况
我有一堆运行程序,我想通过线程池来执行。然而,每个运行程序也会将一些结果写入一些文件。所以现在,运行程序的界面很简单: 然而,我想要的是将一个BufferedWriter(换句话说,一个输出文件)与Executor池中的每个线程相关联。但是,我正在调用功能,如下所示: 我不知道执行器将分配哪个线程来运行给定的任务,所以我不知道应该向runnable提供哪个BufferedWriter。如何确保Ex