#java
#java
Вопрос:
imageToPPMFile(picture,ysize,xsize,maxIntensity,fname);
}//end of main//
public static void imageToPPMFile (int[][][]image, int rows, int cols, int maxintensity, String fname) throws Exception
PrintWriter
То, что я пытаюсь использовать здесь, не будет печатать цвета в файле ‘fname’, потому что программа запрашивает объявление или catch, когда я создаю исключение выше. Однако исключение было предоставлено мне моим учителем, и поэтому мне нужно сохранить его. Кто-нибудь может сказать мне, что не так с PrintWriter
и / или Exception
?
PrintWriter outp = new PrintWriter(fname);
int ysize = rows;
int xsize = cols;
int red, green, blue;
outp.println("P3");
outp.println(rows " " cols);
outp.println(maxintensity);
for (int r=0; r<ysize; r )
{ for (int c=0; c<xsize; c )
{ red = image[c][r][0];
outp.print(red " ");
green = image[c][r][1];
outp.print(green " ");
blue = image[c][r][2];
outp.print(blue " ");
}
}//Adding a PrintWriter.outp.close() here results in the variable not being found
}
}
Комментарии:
1. Итак, если кто-нибудь придет на помощь, проблема в том, что мой учитель сказал мне вставить оператор ‘throws Exception’, но я понятия не имею, как его использовать. Я пробовал вставлять случайные операторы catch и try здесь и там, но поскольку я пока не знаю, как их использовать, это оставило меня довольно озадаченным. Буду признателен за любую помощь!
2. «это не работает» — не совсем подходящее описание. Пожалуйста, прочитайте tinyurl.com/so-hints а затем отредактируйте свой пост. Вероятно, вы захотите перенести свой предыдущий комментарий в текст сообщения и в идеале создать короткую , но полную программу, демонстрирующую проблему. Этой короткой программе, возможно, вообще не нужно записывать файл PPM…
3. Вы должны закрыть свой PrintWriter.out.close()
4. @Cylad: если это просто о том, как использовать исключения, вы должны начать здесь: download.oracle.com/javase/tutorial/essential/exceptions
5. @Cyiad: Нет, это все равно было бы лучше в виде короткой, но полной программы. Вам не нужно добавлять комментарии, вам не нужно иметь ничего общего с изображениями. Вы читали статью, на которую я дал ссылку? (Извините за придирчивость, но умение задать вопрос как можно лучше — чрезвычайно важный навык, ИМО.)
Ответ №1:
В первом случае вы должны close
свой PrintWriter
. Вызовите outp.close()
в той же области, в которой вы создали объект PrintWriter.
Что касается использования throws Exception
, взгляните на приведенный ниже пример, и вы поймете это:
public static void foo() throws Exception {
// Some code here. Possible occurring of an error.
}
Чтобы правильно использовать этот метод, вы должны вызвать это в try-catch
блоке или другом методе, который объявляет throws Exception
. Например, из приведенного ниже main
метода:
public static void main(String args[]) {
// Your other code
// Call the method that may throw an exception
try {
foo();
} catch(Exception ex) {
}
// Any other code you want
}