无法达成声明

时间:2018-04-14 23:40:18

标签: java

我制作了一个方法,目的是删除问题列表。方法测试包含问题,答案,问题数量,点数。工作正常。

我收到以下错误:

  

无法访问的声明:System.out.println(“测试”“”测试[indice - 1] .getNomTest());

以下是代码:

#!/bin/bash

SRC_DIR_ARCHIVE=dates
DAYS_TO_ARCHIVE=30
DEST_ARCHIVE=dates/archiv

d=$(date -d"$DAYS_TO_ARCHIVE days ago" +%Y%m%d)
echo "$d"
for i in {1..30}
do
  dt="$(date -d "$d -${i} days" +%Y%m%d)"
  fn="$dt.tar.gz"
  toarc=("$SRC_DIR_ARCHIVE"/???????????_??????_${dt}.*_*.csv)
  test -f "${toarc[0]}" && \
    tar -czf "$DEST_ARCHIVE/$fn" ${toarc[*]} || \
    echo "no file, cmd: tar -czf $DEST_ARCHIVE/$fn ${toarc[*]}"
done

感谢您的帮助。

3 个答案:

答案 0 :(得分:0)

你有这个错误的原因是因为异常的行为类似于一个返回语句,它会被最近的异常处理程序捕获。

因为你有:

throw new IndexOutOfBoundsException();

永远不会达到该抛出下面的任何代码,因为它会立即跳转到你的catch块。

我希望这是有道理的。 :)

答案 1 :(得分:0)

当你抛出异常时,抛出之下的代码将不会被执行。抛出调用异常,该方法只能在catch / finally块中继续。无法访问throw new IndexOutOfBoundsException();之后的行。也许你的代码应该遵循:

if (indice < 1 || indice > nbrTests){
     throw new IndexOutOfBoundsException();
}
System.out.println("The test \"" + tests[indice - 1].getNomTest());
tests[indice-1] =null;
nbrTests--;
fin = false;

答案 2 :(得分:0)

使用try语句时,如果检测到异常,则会自动引发异常。因此,只需取出throw异常行,然后你的代码就可以了。