草庐IT

try-catch-repeat

全部标签

java - 当 catch 并没有真正捕捉到任何东西时

这个问题在这里已经有了答案:"Comparisonmethodviolatesitsgeneralcontract!"(13个回答)关闭4年前.由于最近存储在数据库中的错误数据,我遇到了程序崩溃。这让我很困惑,因为我认为我有办法防止这种情况发生。以下代码的目的是比较员工徽章编号并对其进行排序。如果有错误,返回-1并继续前进——不要因为几千个徽章编号中的一个错误而停止:publicintcompare(Employeet,Employeet1){IntegerreturnValue=-1;try{Integertb=Integer.parseInt(t.getBadgeNumber())

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结束时关闭了匿名局部变量,是否有任何原因无法支

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。但是当我试图改变循环条件

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 - 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