草庐IT

do-catch

全部标签

java - 在 catch 和 finally 子句中抛出异常

在大学的一个Java问题上,有一段代码:classMyExc1extendsException{}classMyExc2extendsException{}classMyExc3extendsMyExc2{}publicclassC1{publicstaticvoidmain(String[]args)throwsException{try{System.out.print(1);q();}catch(Exceptioni){thrownewMyExc2();}finally{System.out.print(2);thrownewMyExc1();}}staticvoidq()thr

java - 在 catch block 内抛出异常 - 它会再次被捕获吗?

这似乎是一个编程101问题,我原以为我知道答案,但现在发现自己需要仔细检查。在下面这段代码中,第一个catchblock中抛出的异常会被下面的通用Exceptioncatchblock捕获吗?try{//Dosomething}catch(IOExceptione){thrownewApplicationException("Problemconnectingtoserver");}catch(Exceptione){//WilltheApplicationExceptionbecaughthere?}我一直认为答案是否定的,但现在我有一些可能由此引起的奇怪行为。大多数语言的答案可能都

java - 在 catch block 内抛出异常 - 它会再次被捕获吗?

这似乎是一个编程101问题,我原以为我知道答案,但现在发现自己需要仔细检查。在下面这段代码中,第一个catchblock中抛出的异常会被下面的通用Exceptioncatchblock捕获吗?try{//Dosomething}catch(IOExceptione){thrownewApplicationException("Problemconnectingtoserver");}catch(Exceptione){//WilltheApplicationExceptionbecaughthere?}我一直认为答案是否定的,但现在我有一些可能由此引起的奇怪行为。大多数语言的答案可能都

java - 应该尝试...catch 进入循环内部还是外部?

我有一个看起来像这样的循环:for(inti=0;i这是一个方法的主要内容,其唯一目的是返回float组。如果出现错误,我希望此方法返回null,因此我将循环放在try...catchblock中,如下所示:try{for(inti=0;i但后来我也想到了将try...catchblock放入循环中,如下所示:for(inti=0;i是否有任何理由(性能或其他方面)偏爱一个而不是另一个?编辑:共识似乎是将循环放在try/catch中更简洁,可能放在它自己的方法中。但是,仍然存在关于哪个更快的争论。有人可以对此进行测试并给出统一的答案吗? 最佳答案

java - 应该尝试...catch 进入循环内部还是外部?

我有一个看起来像这样的循环:for(inti=0;i这是一个方法的主要内容,其唯一目的是返回float组。如果出现错误,我希望此方法返回null,因此我将循环放在try...catchblock中,如下所示:try{for(inti=0;i但后来我也想到了将try...catchblock放入循环中,如下所示:for(inti=0;i是否有任何理由(性能或其他方面)偏爱一个而不是另一个?编辑:共识似乎是将循环放在try/catch中更简洁,可能放在它自己的方法中。但是,仍然存在关于哪个更快的争论。有人可以对此进行测试并给出统一的答案吗? 最佳答案

java - 即使从未抛出异常,使用 try-catch block 是否昂贵?

我们知道捕获异常的成本很高。但是,即使从未抛出异常,在Java中使用try-catchblock是否也很昂贵?我找到了StackOverflow问题/答案Whyaretryblocksexpensive?,但它是为.NET. 最佳答案 try几乎没有任何费用。代码的元数据不是在运行时设置try的工作,而是在编译时构建的,这样当抛出异常时,它现在执行一个相对昂贵的操作,即向上走栈并查看如果存在任何会捕获此异常的tryblock。从外行的角度来看,try还不如免费。它实际上是抛出异常让您付出代价-但除非您抛出数百或数千个异常,否则您仍然

java - 即使从未抛出异常,使用 try-catch block 是否昂贵?

我们知道捕获异常的成本很高。但是,即使从未抛出异常,在Java中使用try-catchblock是否也很昂贵?我找到了StackOverflow问题/答案Whyaretryblocksexpensive?,但它是为.NET. 最佳答案 try几乎没有任何费用。代码的元数据不是在运行时设置try的工作,而是在编译时构建的,这样当抛出异常时,它现在执行一个相对昂贵的操作,即向上走栈并查看如果存在任何会捕获此异常的tryblock。从外行的角度来看,try还不如免费。它实际上是抛出异常让您付出代价-但除非您抛出数百或数千个异常,否则您仍然

c++ - C/C++ 编译器警告 : do you clean up all your code to remove them or leave them in?

我参与过许多项目,在这些项目中,其他人向我提供了要更新的代码。我经常编译它并收到大约1,000多个编译器警告。当我看到编译器警告时,它们让我觉得很脏,所以我的首要任务是清理代码并将它们全部删除。通常我会发现十几个问题,比如未初始化的变量。我不明白为什么人们将它们留在里面并且没有完全干净的编译而没有警告。我错过了什么吗?有什么正当理由让他们离开吗?有什么恐怖故事可以分享吗? 最佳答案 我会清除任何警告。即使是你知道是无害的(如果存在这样的东西)也会给编译代码的人留下不好的印象。如果我必须编写其他代码,我会寻找“臭”的迹象之一。如果不是

c++ - C/C++ 编译器警告 : do you clean up all your code to remove them or leave them in?

我参与过许多项目,在这些项目中,其他人向我提供了要更新的代码。我经常编译它并收到大约1,000多个编译器警告。当我看到编译器警告时,它们让我觉得很脏,所以我的首要任务是清理代码并将它们全部删除。通常我会发现十几个问题,比如未初始化的变量。我不明白为什么人们将它们留在里面并且没有完全干净的编译而没有警告。我错过了什么吗?有什么正当理由让他们离开吗?有什么恐怖故事可以分享吗? 最佳答案 我会清除任何警告。即使是你知道是无害的(如果存在这样的东西)也会给编译代码的人留下不好的印象。如果我必须编写其他代码,我会寻找“臭”的迹象之一。如果不是

objective-c - NSAssert 与断言 : Which do you use, 什么时候?

我最近阅读了两条非常有趣的建议:在thisStackOverflowanswer的评论中,@MikeWeller说要在生产代码中保留您的断言...性能受到什么影响,真的吗?有什么理由不把它们留在里面吗?在VincentGable'sblog,他说你应该更喜欢assert而不是NSAssert...有什么理由不使用assert?(字母少了:)) 最佳答案 回答你的两个问题:离开断言对性能的影响应该很小,除非断言中的实际操作非常耗时(例如assert([objcalculateMeaningOfLife]==42))。在性能方面,断言应