草庐IT

try-exception

全部标签

java - 为什么Java的try-with-resource中需要声明

Java7的try-with-resources非常棒,但我无法理解为什么需要在try语句中包含资源声明。我的直觉说以下应该是可能的:CloseableResourcething;try(thing=methodThatCreatesAThingAndDoesSomeSideEffect()){//dosomeinterestingthings}thing.collectSomeStats();唉,这会导致语法错误(神秘地期待;)。将类型定义/声明移动到try语句中是可行的,这当然会将thing移动到相应的范围内。当我想从我的AutoClosable中得到更多而不是关闭时,我可以弄清楚

java - 我什么时候应该在 Java try-catch-finally 中使用 finally-block

我什么时候应该使用代码片段A而不是片段B(即使用片段A有什么好处)?:片段A:try{//codeblockA}catch(Exceptionex){//codeblockB}finally{//codeblockC}片段B:try{//codeblockA}catch(Exceptionex){//codeblockB}//codeblockC 最佳答案 如果您有无论是否抛出异常都必须执行的代码,请使用finallyblock。清理数据库连接等稀缺资源就是一个很好的例子。 关于java

java - 即使在 Junit 测试从 with in 'finally' block 中抛出断言错误后, 'try' block 是否会触发?

finally{}block中的writer.close()方法会在Junit断言错误上运行吗?假设以下代码:@TestpublicvoidtestWriter(){try{writer.open();finalListmyBeans=newArrayList();/**Add2beanstothemyBeansListhere.**/finalintbeansWritten=writer.writeBeans(myBeans);//Saythisassertionerrorbelowistriggeredorg.junit.Assert.assertEquals("Wrongnumb

java - 哪个更好/更有效 : check for bad values or catch Exceptions in Java

在Java中哪个更有效:检查错误值以防止异常或让异常发生并捕获它们?这里有两block示例代码来说明这种差异:voiddoSomething(typevalue1){ResultTyperesult=genericError;if(value1==badvalue||value1==badvalue2||...){result=specificError;}else{DoSomeActionThatFailsIfValue1IsBad(value1);//...result=success;}callback(result);}对比voiddoSomething(typevalue1)

java - 使用非 Comparable 类 : why a run-time exception, 而不是编译时错误创建 TreeSet?

如果我创建一个未实现Comparable的任意类,并尝试将其用作树集,它会在插入对象时在运行时抛出异常:publicclassFoo{}publicTreeSetfooSet=newTreeSet();fooSet.add(newFoo());//ThrowsaClassCastExceptionexceptionhere:Fooisnotcomparable我不是Java专家,但似乎以一种我没有预料到的方式动态输入(alaPython)。TreeSet的实现是否无法指定其泛型类型参数必须实现Comparable以便可以在编译时捕获?非泛型函数可以将接口(interface)作为参数;

java优化挑剔: is it faster to cast something and let it throw exception than calling instanceof to check before cast?

在任何人说什么之前,我只是出于好奇才问这个问题;我不打算根据这个答案进行任何过早的优化。我的问题是关于使用反射和转换的速度。标准说法是“反射很慢”。我的问题是到底是哪一部分慢,为什么?特别是在比较某事物是否是另一个实例的父实例时。我非常有信心将一个对象的类与另一个类对象进行比较与任何比较一样快,大概只是对已经存储在对象状态中的单例对象进行直接比较;但是如果一个类是另一个类的父类呢?我通常认为instanceof与常规类检查一样快,但今天我想到了它,似乎必须在instanceof的“幕后”发生一些反射(reflection)开始工作。上网查了一下,发现有几个地方有人说instanceof

java - try-catch 除以零

我的问题是关于简单除以零示例的try-catchblock。你看到第一行了吗?如果我将这两个变量中的任何一个转换为double,程序将无法识别catchblock。在我看来,无论我投还是不投,都必须执行catchblock。这段代码有什么问题?publicstaticvoidmain(String[]args){intpay=8,payda=0;try{doubleresult=pay/(double)payda;//ifIcastanyofthetwovariables,programdoesnotrecognizethecatchblock,whyisitso?System.out

java:如何声明一个在 try - catch block 中初始化的变量的 final?

我有一个变量在初始化后不应更改其值,因此我想将其定义为最终变量。问题是变量必须在tryblock中初始化,所以我遇到了以下麻烦:我有以下代码:Connectionconn=null;try{conn=getConn(prefix);[...dosomestuffwithconn...]}catch(Exceptione){thrownewDbHelperException("erroropeningconnection",e);}finally{closeConnection(conn);}如果我将variabale声明为final,但没有将其初始化为null,我会在finallybl

java - 审计 Java : system to detect exceptions thrown/caught (aop? )

由于已检查的异常,我们在生产中可能会遇到一些问题,即在正确的位置捕获所有异常并正确记录。我想知道是否有一些开源工具可以帮助审核这些问题。例如,是否有一些AOP工具可以拦截所有抛出的异常并查看它们是否被重新抛出、包装或记录?这将有助于识别不良捕获。 最佳答案 如果您决定采用AOP路线,SpringFramework提供了一个易于使用的AOP框架。本质上,与Spring的大部分内容一样,您可以结合使用xml配置文件和一些java代码来定义您正在寻找的AOP功能。在您的情况下,我相信您会希望定义一个“抛出后建议”,您当然可以在其中访问抛出

android - 获取 android.content.res.Resources$NotFoundException : exception even when the resource is present in android

请让我知道我哪里出错了。我正在创建一个应用程序,其中一项Activity仅处于横向模式。所以我在AndroidManifest.xml文件中添加了以下内容我已经创建了一个类似的文件夹/res/layout-land并在其中添加一个名为see_today_landscape_layout的布局。并在onCreate()我添加了以下内容protectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.see_today_landscape_la