草庐IT

Try-catch

全部标签

java - 为什么 try-with-resource 需要一个局部变量?

引用我的问题AnyriskinaAutoCloseablewrapperforjava.util.concurrent.locks.Lock?,我想知道为什么try-with-resource-statement需要一个named局部变量。我目前的使用情况如下:try(AutoCloseableReentrantReadWiteLock.Lockl=_lock.writeLock()){//dosomething}变量l在tryblock内未使用,只会污染命名空间。据我所知,类似的C#using语句不需要局部命名变量。由于在tryblock结束时关闭了匿名局部变量,是否有任何原因无法支

java - lambda 中的无限 while 循环内的 Thread.sleep 不需要 'catch (InterruptedException)' - 为什么不呢?

我的问题是关于InterruptedException,它是从Thread.sleep方法抛出的。在使用ExecutorService时,我注意到一些我不理解的奇怪行为;这就是我的意思:ExecutorServiceexecutor=Executors.newSingleThreadExecutor();executor.submit(()->{while(true){//DOSOMETHINGThread.sleep(5000);}});使用此代码,编译器不会给我任何错误或消息,告诉我应该从Thread.sleep捕获InterruptedException。但是当我试图改变循环条件

java - lambda 中的无限 while 循环内的 Thread.sleep 不需要 'catch (InterruptedException)' - 为什么不呢?

我的问题是关于InterruptedException,它是从Thread.sleep方法抛出的。在使用ExecutorService时,我注意到一些我不理解的奇怪行为;这就是我的意思:ExecutorServiceexecutor=Executors.newSingleThreadExecutor();executor.submit(()->{while(true){//DOSOMETHINGThread.sleep(5000);}});使用此代码,编译器不会给我任何错误或消息,告诉我应该从Thread.sleep捕获InterruptedException。但是当我试图改变循环条件

java - 无法访问的代码编译没有错误 - 如何?

据我了解,以下代码不应编译,因为语句“我无法访问”在return之后。但是,当我运行这段代码时,它编译得非常好。同样来自JLS:UnreachableStatements它不应该编译。fromthespec,at14.21UnreachableStatements:Atrystatementcancompletenormallyifbothofthefollowingaretrue:Thetryblockcancompletenormallyoranycatchblockcancompletenormally.Ifthetrystatementhasafinallyblock,then

java - 无法访问的代码编译没有错误 - 如何?

据我了解,以下代码不应编译,因为语句“我无法访问”在return之后。但是,当我运行这段代码时,它编译得非常好。同样来自JLS:UnreachableStatements它不应该编译。fromthespec,at14.21UnreachableStatements:Atrystatementcancompletenormallyifbothofthefollowingaretrue:Thetryblockcancompletenormallyoranycatchblockcancompletenormally.Ifthetrystatementhasafinallyblock,then

windows配置openssh,以及密码正确时Permission denied, please try again

最近在搭建jenkins环境管理项目需要用到ssh。而服务器目前只有一台windows可以使用.....首先去到官网去下载,至于我为什么去官网下载.....因为遇到了部分问题,win10里面就可以直接下载 但是我从官网下载安装到了e盘,因为openssh\sshd.config文件用win10安装的话是只读不可修改官网安装:mls-software.com如果在密码正确的情况下还提示:Permissiondenied,pleasetryagain 这时候就需要修改opensshconfig文件了,大概第56行如果是no,需要修改成yesPermitRootLoginyes若还是不行放大招 账户

java - 没有编译器错误的多个返回语句

这是一个面试问题:publicclassDemo{publicstaticvoidmain(String[]args){System.out.println(foo());}staticStringfoo(){try{return"try...";}catch(Exceptione){return"catch...";}finally{return"finally...";//gotasresult}}}我的问题是为什么没有编译时错误。当我的finallyblock中有return语句时,它一定会从finally而不是try和catch返回>阻止。我试图用-Xlint选项编译这段代码,

java - 没有编译器错误的多个返回语句

这是一个面试问题:publicclassDemo{publicstaticvoidmain(String[]args){System.out.println(foo());}staticStringfoo(){try{return"try...";}catch(Exceptione){return"catch...";}finally{return"finally...";//gotasresult}}}我的问题是为什么没有编译时错误。当我的finallyblock中有return语句时,它一定会从finally而不是try和catch返回>阻止。我试图用-Xlint选项编译这段代码,

java - catch 和 finally 中 return 语句的行为

请查看以下代码并解释输出行为。publicclassMyFinalTest{publicintdoMethod(){try{thrownewException();}catch(Exceptionex){return5;}finally{return10;}}publicstaticvoidmain(String[]args){MyFinalTesttestEx=newMyFinalTest();intrVal=testEx.doMethod();System.out.println("ThereturnVal:"+rVal);}}结果是返回Val:10。Eclipse显示警告:fin

java - catch 和 finally 中 return 语句的行为

请查看以下代码并解释输出行为。publicclassMyFinalTest{publicintdoMethod(){try{thrownewException();}catch(Exceptionex){return5;}finally{return10;}}publicstaticvoidmain(String[]args){MyFinalTesttestEx=newMyFinalTest();intrVal=testEx.doMethod();System.out.println("ThereturnVal:"+rVal);}}结果是返回Val:10。Eclipse显示警告:fin