File.createNewFile (): как обработать ошибку «незарегистрированное исключение»? - PullRequest
0 голосов
/ 04 июля 2018

Я новичок в мире программирования. Я учусь в 6-м классе, и нам было поручено создать новый файл, используя экземпляр File. Я получаю IO-исключение при компиляции. Я искал в Интернете, но не могу найти объяснение, которое я могу понять по этой проблеме.

Пожалуйста, потерпите меня, но мой код:

import java.io.File;
public class TestFile{
  public static void main(String[] args) {
    File myArchive = new File("MyDocument.txt");
    boolean x = myArchive.createNewFile();
    System.out.println(x);
  }
}

Как я понимаю, createNewFile() предоставит значение true, если файл будет создан, но я продолжаю получать следующее сообщение.

TestFile.java: 5: ошибка: незарегистрированное исключение IOException; должно быть пойман или объявлен брошенным boolean x = myArchive.createNewFile (); ^ 1 ошибка

Из того, что я собрал в сети, есть исключение, которое нужно поймать. Инструктор не советовал, как обрабатывать исключения в коде или что-либо делать с командами try или catch.

Большое спасибо за вашу помощь. Если я не соблюдаю какие-либо правила форума, пожалуйста, дайте мне знать, это мой первый пост, и снова я довольно новичок в программировании.

Ответы [ 3 ]

0 голосов
/ 04 июля 2018

В java вы получите много Exceptions, и вам придется обработать его, используя блок try..catch.

try{  
//code that may throw exception  
}catch(Exception_class_Name ref){}  

Кроме того, вы должны определить boolean x вне блока try, и его следует инициализировать некоторым значением (true или false) .

Попробуйте этот код: -

import java.io.File;

public class Main {
  public static void main(String[] args) {
    File myArchive = new File("MyDocument.txt");
    boolean x = true;
    try {
      x = myArchive.createNewFile();
    } catch (Exception e) {
      e.printStackTrace();
    }
     System.out.println(x);
  }
}

Выход: -

true
0 голосов
/ 04 июля 2018

Просто вступление, чтобы попробовать поймать и для чего оно:

Некоторые операции могут вызвать ошибку, которая может даже не быть ошибкой программиста, но может произойти из-за непредвиденных обстоятельств.

Например, вы хотите создать файл, но в этот момент место назначения файла может отсутствовать (например, извлечена флешка), или диск может быть заполнен, или это может быть невозможное имя файла (при условии другим пользователем через клавиатуру, содержащую «запрещенные» символы), либо разрешение может быть не предоставлено (например, в Android, когда ваш телефон запрашивает разрешения на запись файлов, вы можете предоставить его или отказаться от предоставления в целях безопасности). ).

В таких случаях Java предоставляет вам возможность попробовать подверженный ошибкам код, а затем перехватить ошибку. Если происходит ошибка, вы не хотите, чтобы ваше приложение зависало. Вы хотите, чтобы он продолжал работать, поэтому вы можете предупредить пользователя на экране о том, что операция с файлом не удалась, и предложить альтернативные действия.

Итак, вы делаете следующее:

 try{

   // place a risky part of code here
   // like, creating a file

 } catch (Exception error)
 {
     // This part will be executed only if there is an error
     // in this part, you can change the wrong file name
     // or tell the user that the disc is not available
     // just do something about the error.
     // If an error does not occur, then this part will not be executed.
  } 
0 голосов
/ 04 июля 2018
    try {
        boolean x = myArchive.createNewFile();
        System.out.println(x);
    } catch (IOException e) {
        e.printStackTrace();
    }

Блок try содержит набор операторов, в которых может возникнуть исключение. За блоком try всегда следует блок catch, который обрабатывает исключение, которое возникает в связанном блоке try

...