小编Rob*_*ert的帖子

Java尝试捕获,直到没有抛出异常

我试图使用扫描仪和无限循环从用户获取一个整数.我知道解决这个问题的解决方案,但我一直想知道为什么我的第一种方法不能正常工作?

Scanner myScanner = new Scanner(System.in);
int x = 0;
while(true){
    try{
        System.out.println("Insert a number: ");
        x = myScanner.nextInt();
        break;
    }catch(InputMismatchException e){
        System.out.println("Invalid, try again.");
        continue;
    }
}
Run Code Online (Sandbox Code Playgroud)

它适用于第一次迭代,但它只是在屏幕上永远打印"无效,再试一次".

java exception

4
推荐指数
1
解决办法
2129
查看次数

流口水变更集

我有更改集文件

<change-set xmlns='http://drools.org/drools-5.0/change-set' xmlns:xs='http://www.w3.org/2001/XMLSchema-instance' xs:schemaLocation='http://drools.org/drools-5.0/change-set http://anonsvn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-api/src/main/resources/change-set-1.0.0.xsd'>
    <add>
        <resource source='http://172.16.13.33:8080/drools-guvnor/org.drools.guvnor.Guvnor/package/Eligibility/Eligibility' type='PKG' />
        <resource source='http://172.16.13.33:8080/drools-guvnor/org.drools.guvnor.Guvnor/package/RiskEngine/RiskEngine' type='PKG' />
        <resource source='http://172.16.13.33:8080/drools-guvnor/org.drools.guvnor.Guvnor/package/AccountTransfer/AccountTransfer' type='PKG' />
        <resource source='http://172.16.13.33:8080/drools-guvnor/org.drools.guvnor.Guvnor/package/Correspondence/Correspondence' type='PKG' />
    </add>
</change-set>
Run Code Online (Sandbox Code Playgroud)

它已经工作了 5 年,突然停止工作。

得到以下错误:

<change-set xmlns='http://drools.org/drools-5.0/change-set' xmlns:xs='http://www.w3.org/2001/XMLSchema-instance' xs:schemaLocation='http://drools.org/drools-5.0/change-set http://anonsvn.jboss.org/repos/labs/labs/jbossrules/trunk/drools-api/src/main/resources/change-set-1.0.0.xsd'>
    <add>
        <resource source='http://172.16.13.33:8080/drools-guvnor/org.drools.guvnor.Guvnor/package/Eligibility/Eligibility' type='PKG' />
        <resource source='http://172.16.13.33:8080/drools-guvnor/org.drools.guvnor.Guvnor/package/RiskEngine/RiskEngine' type='PKG' />
        <resource source='http://172.16.13.33:8080/drools-guvnor/org.drools.guvnor.Guvnor/package/AccountTransfer/AccountTransfer' type='PKG' />
        <resource source='http://172.16.13.33:8080/drools-guvnor/org.drools.guvnor.Guvnor/package/Correspondence/Correspondence' type='PKG' />
    </add>
</change-set>
Run Code Online (Sandbox Code Playgroud)

drools

4
推荐指数
1
解决办法
770
查看次数

如何在 Perl POD 中记录参数

我有这个 POD:

=head1 My code

=head2 check

Checks something. 

Parameters:

=over 8

=item what to check.

=back

=cut
Run Code Online (Sandbox Code Playgroud)

podchecker不抱怨。perldoc显示这个:

My code
  check
    Checks something.

    Parameters:

    what to check.
Run Code Online (Sandbox Code Playgroud)

我希望“检查内容”行进一步缩进。

我需要如何更改我的 POD 以显示缩进的参数?有没有比=items更好的方法来做到这一点?

format perl perldoc indentation perl-pod

4
推荐指数
1
解决办法
111
查看次数

Gradle:在taskGraph.whenReady中设置变量

我的构建脚本有以下代码:

def includePatchFrom = "WTF?!"

task patchWebXml(type: Exec) {
    executable "perl"
    args "scripts/patch.pl", includePatchFrom
}

gradle.taskGraph.whenReady { taskGraph ->
    if (taskGraph.hasTask(webtestWar)) {
        includePatchFrom = "resources/webtest"
    }
    else {
        includePatchFrom = "resources/production"
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我正确理解http://www.gradle.org/docs/current/userguide/tutorial_using_tasks.html,我应该能够includePatchFromwhenReady闭包中设置该变量,但它只保留其初始值:

...
:patchWebXml
...
Starting process 'command 'perl''. Working directory: /Users/robert/ Command: perl scripts/patch.pl WTF?!
Successfully started process 'command 'perl''
Cannot read WTF?!: No such file or directory at scripts/patch.pl line 43, <$F> line 14.
:patchWebXml FAILED
Run Code Online (Sandbox Code Playgroud)

从println语句我可以告诉我includePathFrom将其设置为正确的值.似乎exec任务已经使用了旧值,includePatchFrom …

gradle

3
推荐指数
1
解决办法
1213
查看次数

如何调试单个Perl单元测试子?

我有通常的MakeMaker模块和一个t/测试目录,我可以运行一个单独的测试文件,例如,prove -I lib t/my-test.t.

我的测试使用Test::Classand Test::More和subs(使用Effective Perl的modulino技术),如下所示:

use strict;
use warnings;
use base 'Test::Class';  
use Test::More;

__PACKAGE__->runtests() unless caller;

sub set_up : Test(setup) {
    # ...
} 

sub test_something : Test {
    is(MyModule::some_sub(1), 1);
}

# ...more test subs...
Run Code Online (Sandbox Code Playgroud)

现在我想使用Perl调试器来调查一个显示模块中问题的测试子.我想只test_something在调试器中运行,而不运行文件中的所有其他测试子.t.

prove 似乎没有这样的选择.

perl -d -I lib t/my-test.t运行所有测试,除非我更改我的modulino调用setup方法,然后调用实际的测试方法,而不是__PACKAGE__->runtests():

unless (caller) { 
    set_up(); 
    test_something();  
    done_testing();  
}
Run Code Online (Sandbox Code Playgroud)

如何在不修改代码的情况下只运行一个测试子?

perl unit-testing modulino

3
推荐指数
1
解决办法
349
查看次数

在已经工作的线程中调用方法时会发生什么?

在它下面运行我的测试代码似乎在它仍在执行时调用线程方法在线程当前执行之间运行方法.我想知道的是究竟发生了什么?

线程是否暂停while循环,执行方法,然后返回循环?它是在while代码的末尾或其间的任何地方吗?

或者该方法是否在另一个单独的线程中执行?还是别的什么?

package test;

public class main {
    public static threed thred = new threed();

    public static void main(String[] args) throws InterruptedException {
        thred.start();
        Thread.sleep(10000);
        while (true) {
            System.out.println("doing it");
            thred.other();
            Thread.sleep(2000);
            thred.x++;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

package test;

public class threed extends Thread {
    public int x;

    public threed() {
        x = 0;
    }

    public void run() {
        while (x < 10) {
            System.out.println(x);          
        }   
    }

    public void other() {
        System.out.println("other " + x);
    }
}
Run Code Online (Sandbox Code Playgroud)

java multithreading loops while-loop

3
推荐指数
1
解决办法
108
查看次数

如何将 mypy 与派生类和方法调用一起使用?

我正在与 mypy 作斗争,不明白我想要传递一个派生类,其中代码接受基类或任何派生类的实例,并在该传递的实例上调用方法。

我的代码:

from typing import Type
import abc

class Base(abc.ABC):
    @abc.abstractmethod
    def my_method(self):
        pass

class Derived(Base):
    def my_method(self):
        print("Derived")

def my_function(b: Type[Base]):
    b.my_method()  # line 14

d = Derived()
my_function(d)  # line 17
Run Code Online (Sandbox Code Playgroud)

当我运行它时,它会打印“Derived”(如预期)。但 mypy 对此并不满意:

mcve.py:14:错误:“Base”的“my_method”参数太少

mcve.py:17: 错误:“my_function”的参数 1 具有不兼容的类型“Derived”;预期“类型[基础]”

我假设第 14 行错误是因为 mypy 没有看到第一个参数位于方法调用前面( )base.,这可能是因为第 17 行的错误?

我如何让 mypy 理解这段代码?或者我在这里缺少什么?

python mypy

3
推荐指数
1
解决办法
3456
查看次数

一个文件下有两个文件,pm和pl。如果运行pl文件,pm包调用不成功

文件目录?

/home/wh/perlstudy/perl2/Person/Student.pm
/home/wh/perlstudy/perl2/Person/person.pl
Run Code Online (Sandbox Code Playgroud)

学生.pm

package Student;
use strict;
use warnings FATAL => 'all';
# use utf8;
# binmode(STDIN,"encoding(gbk)");
sub new
{
    my $class = shift;
    my $self = {
        _name => shift, _rank  => shift, };
    # Print all the values just for clarification.
    print "??????  $self->{_name}\n";
    print "?????? $self->{_rank}\n";

    bless $self, $class;
    return $self;
}
sub studentRank {
    my ( $self, $name ) = @_;
    $self->{_name} = $name if defined($name);
    return $self->{_name};
}
sub studentName {
    my( $self ) …
Run Code Online (Sandbox Code Playgroud)

linux perl

3
推荐指数
1
解决办法
54
查看次数

Next.js - 如何隐藏 404 页面上的导航和页脚组件?

import Footer from "./Footer";
import Navigation from "./Navigation";
import { useRouter } from "next/router";

function Layout({ children }) {
  const router = useRouter();
  return (
    <>
      {router.pathname !== "/*" && <Navigation />}
      {/* {router.pathname !== "*" && <Navigation />} */}
      <main className="main-content">{children}</main>
      {router.pathname !== "/*" && <Footer />}
      {/* {router.pathname !== "*" && <Footer />} */}
    </>
  );
}

export default Layout;
Run Code Online (Sandbox Code Playgroud)

不幸的是,带有星号的方法不起作用:/?!?

预先感谢您并向大家致以最诚挚的问候;-)

javascript http-status-code-404 next.js

3
推荐指数
1
解决办法
3073
查看次数

为什么 Perl 的 Devel::Cover 认为某些分支和条件没有被覆盖?

我有这个函数,它接受一个数组,计算每个项目出现的频率,并返回一个唯一项目的数组,首先按计数排序,然后按字母顺序排序,然后按字母顺序不区分大小写,以便在运行之间顺序不会改变。

use strict;
use warnings;

sub sorted {
    my @elements = @_;

    my %counts;
    foreach my $e (@elements) {
        $counts{$e}++;
    }

    my @sorted = sort { 
        $counts{$b} <=> $counts{$a} or $a cmp $b or lc $a cmp lc $b
    } keys %counts;

    return @sorted;
}

1;
Run Code Online (Sandbox Code Playgroud)

我有这个测试用例,一切正常:

use strict;
use warnings;
use Test::More;
use module;

is_deeply(['A', 'a', 'c', 'b'], [sorted('a', 'b', 'c', 'a', 'c', 'A', 'A')]);
done_testing();
Run Code Online (Sandbox Code Playgroud)

我运行它并用于Devel::Cover收集测试覆盖率数字。我期望 100% 的覆盖率,但分支和条件覆盖率很短:

HARNESS_PERL_SWITCHES=-MDevel::Cover prove -I. test.t && cover
test.t .. …
Run Code Online (Sandbox Code Playgroud)

testing perl code-coverage devel-cover

3
推荐指数
1
解决办法
154
查看次数