我制作了一个方法,目的是删除问题列表。方法测试包含问题,答案,问题数量,点数。工作正常。
我收到以下错误:
无法访问的声明: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
感谢您的帮助。
答案 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异常行,然后你的代码就可以了。