Как правильно делать обработку исключений PrintStream, чтобы созданным объектом можно было пользоваться за пределами try
Я пытался добиться истины методом тыка, но не получилось, поэтому обращаюсь к вам. Как обработать исключение FileNotFoundException (да и в целом любое исключение), чтобы try распространялся только на создание объектов и при этом я мог пользоваться созданными объектами за пределами try. Один из вариантов, который я придумал представлен ниже, но в параметрах методов createOutDataForAdmin и createOutDataForAdmin объекты outAdmin и outComputer класса PrintStream якобы не инициализированы.
public class main {
public static void main(String args[]){
Scanner keyboard=new Scanner(System.in);
PrintStream outAdmin,outComputer;
Scanner scan;
try {
outAdmin = new PrintStream("Out data for admin.txt");
outComputer = new PrintStream("Out data for compute.txt");
scan = new Scanner(new File("Out data for admin.txt"));
}catch (FileNotFoundException exception){
System.out.println("File not found");
}
User arrayUsers[]=new User[1];
createOutDataForAdmin(arrayUsers,outAdmin);
createOutDataForComputer(arrayUsers,outComputer);
}
Был еще такой вариант. Код все тот же только изменен блок try catch. Все та же проблема за пределами try не могу пользоваться созданными объектами.
try {
PrintStream outAdmin = new PrintStream("Out data for admin.txt");
PrintStream outComputer = new PrintStream("Out data for compute.txt");
Scanner scan = new Scanner(new File("Out data for admin.txt"));
}catch (FileNotFoundException exception){
System.out.println("File not found");
}
И третий вариант, я весь код запихнул в try. Его я не вижу смысла иллюстрировать. Мне кажется, это так не должно выглядеть, хотя в этом случае все работало как надо. Если что-то напутал в терминах, прощу критиковать)
Ответы (1 шт):
Попробуй в таком виде:
public class main {
public static void main(String args[]){
Scanner keyboard=new Scanner(System.in);
PrintStream outAdmin=null;
PrintStream outComputer=null;
Scanner scan;
try {
outAdmin = new PrintStream("Out data for admin.txt");
outComputer = new PrintStream("Out data for compute.txt");
scan = new Scanner(new File("Out data for admin.txt"));
}catch (FileNotFoundException exception){
System.out.println("File not found");
}
User arrayUsers[]=new User[1];
createOutDataForAdmin(arrayUsers,outAdmin);
createOutDataForComputer(arrayUsers,outComputer);
}