草庐IT

Try-Except-Finally

全部标签

java - 是否可以在 catch 中重新分配最终变量,即使分配是 try 中的最后一个操作?

我很相信这里finalinti;try{i=calculateIndex();}catch(Exceptione){i=1;}i如果控制到达catch-block,则不可能已经分配。然而,Java编译器不同意并声称thefinallocalvariableimayalreadyhavebeenassigned.我在这里仍然缺少一些微妙之处,还是这只是Java语言规范用来识别潜在重新分配的模型的一个弱点?我主要担心的是Thread.stop(),这可能会导致“凭空”抛出异常,但我仍然不明白在赋值后如何抛出异常,这显然是tryblock中的最后一个操作。如果允许,上面的成语将使我的许多方法

java - 是否可以在 catch 中重新分配最终变量,即使分配是 try 中的最后一个操作?

我很相信这里finalinti;try{i=calculateIndex();}catch(Exceptione){i=1;}i如果控制到达catch-block,则不可能已经分配。然而,Java编译器不同意并声称thefinallocalvariableimayalreadyhavebeenassigned.我在这里仍然缺少一些微妙之处,还是这只是Java语言规范用来识别潜在重新分配的模型的一个弱点?我主要担心的是Thread.stop(),这可能会导致“凭空”抛出异常,但我仍然不明白在赋值后如何抛出异常,这显然是tryblock中的最后一个操作。如果允许,上面的成语将使我的许多方法

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 - 为什么 try-with-resource 需要一个局部变量?

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

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 - 'finally block 没有正常完成' Eclipse 警告

Eclipse在以下代码中向我发出警告:publicintgetTicket(intlotteryId,Stringplayer){try{c=DriverManager.getConnection("jdbc:mysql://"+this.hostname+":"+this.port+"/"+this.database,this.user,this.password);intticketNumber;PreparedStatementp=c.prepareStatement("SELECTmax(num_ticket)"+"FROMloteria_tickets"+"WHEREid_

java - 'finally block 没有正常完成' Eclipse 警告

Eclipse在以下代码中向我发出警告:publicintgetTicket(intlotteryId,Stringplayer){try{c=DriverManager.getConnection("jdbc:mysql://"+this.hostname+":"+this.port+"/"+this.database,this.user,this.password);intticketNumber;PreparedStatementp=c.prepareStatement("SELECTmax(num_ticket)"+"FROMloteria_tickets"+"WHEREid_

java - 你真的需要 'finally' block 吗

在java中有3种try...catch...finallyblock的排列。尝试...捕获尝试...捕获...终于尝试...终于一旦finallyblock被执行,控制就转到finallyblock之后的下一行。如果我删除finallyblock并将其所有语句移动到try...catchblock之后的行,这是否与将它们放在finallyblock中的效果相同? 最佳答案 我知道这是一个非常古老的问题,但我今天遇到了,我对给出的答案感到困惑。我的意思是,当这个问题有一个非常直接的实际答案时,它们都是正确的,但都是理论上甚至哲学层面

java - 你真的需要 'finally' block 吗

在java中有3种try...catch...finallyblock的排列。尝试...捕获尝试...捕获...终于尝试...终于一旦finallyblock被执行,控制就转到finallyblock之后的下一行。如果我删除finallyblock并将其所有语句移动到try...catchblock之后的行,这是否与将它们放在finallyblock中的效果相同? 最佳答案 我知道这是一个非常古老的问题,但我今天遇到了,我对给出的答案感到困惑。我的意思是,当这个问题有一个非常直接的实际答案时,它们都是正确的,但都是理论上甚至哲学层面

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