0

私は非常に基本的なことにこだわっています。私たちのゲームには、URL 経由でレベルを取得できる leveleditor/loader があります。URL が存在しないファイルを指している場合、エディターはレベルのロードを拒否し、単に現在のレベルにとどまる必要があります。私は基本的なコードに苦労しています。

private void loadLevel(URL url) {
    Scanner in = null;
    try {
        in = new Scanner(new BufferedReader(new InputStreamReader(
                url.openStream())));
        readLine(in);
        in.close();
    }
    catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

基本的に、FileNotFoundがスローされた場合 (またはその他の場合)readLine(in)は続行しないでください。もしそうなら、あらゆる種類のNPE。

4

3 に答える 3

2
private void loadLevel(URL url) {
    Scanner in = null;
    try {
        in = new Scanner(new BufferedReader(new InputStreamReader(
                url.openStream())));
        /*if(in!=null){
            readLine(in);
            in.close();
        }*/
        readLine(in);
        in.close();
    }
    catch (Exception e) { 
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

編集: @LuiggiMendoza の提案の後。

于 2013-04-05T05:15:45.877 に答える
0

1 つの単一スレッドのコンテキストで、以下の行が例外をスローすると、次のコード行は実行されません。コードが別の方法で実行されていると思われる場合は、別のスレッドが実行している可能性があります / 他のコード

in = new Scanner(new BufferedReader(new InputStreamReader(
            url.openStream())));
于 2013-04-05T05:28:09.673 に答える