- FileNotFoundException in Java Exception Handling And Resolution Example
- Possible Reasons For FileNotFound Exception
- FileNotFoundException in Java
- How to Deal FileNotFound Exception
- Исключение FileNotFoundException в Java
- 1. введение
- 2. Когда Возникает исключение?
- 3. Как с Этим справиться?
- 4. Примеры
- 4.1. Регистрация исключения
- 4.2. Создание исключения для конкретного бизнеса
- 4.3. Создание файла
- 5. Заключение
- Читайте ещё по теме:
- FileNotFoundException в Java
- **2. Когда выбрасывается исключение?
- 3. Как с этим справиться?
- 4. Примеры
- 4.1. Регистрация исключения
- 4.2. Создание исключения для бизнеса
- 4.3. Создание файла
- 5. Заключение
FileNotFoundException in Java Exception Handling And Resolution Example
FileNotFoundException In Java: In this article, we’re going to talk about a very common exception in Java – the FileNotFoundException. we can get this exception when we try to access the file but the file is not present in that location,
Possible Reasons For FileNotFound Exception
There are a few possible reasons for getting this type of exception, here are some:
- A File may be present or not in the mentioned path
- A file with the specified pathname does exist but is inaccessible for some reason (requested writing for a read-only file, or permissions don’t allow accessing the file)
FileNotFoundException in Java
This exception will be thrown by the FileInputStream, FileOutputStream, and RandomAccessFile constructors when a file with the specified pathname does not exist. It will also be thrown by these constructors if the file does exist but for some reason is inaccessible, for example when an attempt is made to open a read-only file for writing.
Check Also: Scientific Games Interview Questions
we will get this exception when we are trying to access a file that does not exist. for access to the files, we are using classes like FileInputStream, FileOutputStream, and RandomAccessFile. The main function of these classes is used to obtain the bytes from a file system.
package co.java.exception; import java.io.File; import java.io.FileReader; public class FileNotFoundException < @SuppressWarnings("unused") public static void main(String[] args) throws java.io.FileNotFoundException < File file = new File("E://file.txt"); @SuppressWarnings("resource") FileReader fr = new FileReader(file); >>
Let’s Run the above program
After execution we get an error:
Exception in thread "main" java.io.FileNotFoundException: E:\file.txt (The system cannot find the file specified) at java.io.FileInputStream.open0(Native Method) at java.io.FileInputStream.open(Unknown Source) at java.io.FileInputStream.<init>(Unknown Source) at java.io.FileReader.<init>(Unknown Source) at co.java.exception.FileNotFoundException.main(FileNotFoundException.java:12)
How to Deal FileNotFound Exception
- Once you got this exception than the first thing you need to check the path which you mentioned in your program to verify that the specified file is present or not in the mentioned path.
- if the file is present in the specified location but still you got the error then you need to check error message for confirming is there any mention about permission related issues if there are some permission related issues then you need to fix that issue or you need to verify that file is used by other application or not.
- Alert a user with a dialogue or error message: this isn’t a stop execution error, so just notifying is enough
- Just log an error: this error should not stop the execution but you log it for future analysis
in this post, we’ve seen when a FileNotFoundException can occur and several options to handle it. if still, you have any doubts then feel free to drop your question in the comment section.
Исключение FileNotFoundException в Java
Краткое и практическое руководство по FileNotFoundException в Java.
1. введение
В этой статье мы поговорим об очень распространенном исключении в Java – исключении FileNotFoundException .
Мы рассмотрим случаи, когда это может произойти, возможные способы лечения и некоторые примеры.
2. Когда Возникает исключение?
Как указано в документации API Java, это исключение может быть вызвано, когда:
- Файл с указанным именем пути не существуетне существует
- Файл с указанным именем пути существует , но недоступен по какой-либо причине (запрошена запись для файла только для чтения или разрешения не позволяют получить доступ к файлу)
3. Как с Этим справиться?
Прежде всего, принимая во внимание, что он расширяет java.io.IOException , который расширяет java.lang.Исключение , вам нужно будет справиться с ним с помощью блока try-catch , как и с любым другим проверенным E xception .
Затем, что делать (связано с бизнесом/логикой) внутри блока try-catch на самом деле зависит от того, что вам нужно сделать.
Возможно, вам это понадобится:
- Создание исключения для конкретного бизнеса: это может быть ошибка stopexecutionerror, но вы оставите решение в верхних слоях приложения (не забудьте включить исходное исключение)
- Предупредите пользователя диалогом или сообщением об ошибке: это не ошибка stopexecutionerror, поэтому достаточно просто уведомить
- Создание файла: чтение необязательного файла конфигурации, его поиск и создание нового файла со значениями по умолчанию
- Создайте файл по другому пути: вам нужно что-то написать, и если первый путь недоступен, попробуйте использовать отказоустойчивый
- Просто зарегистрируйте ошибку: эта ошибка не должна останавливать выполнение, но вы регистрируете ее для дальнейшего анализа
4. Примеры
Теперь мы рассмотрим несколько примеров, все из которых будут основаны на следующем тестовом классе:
public class FileNotFoundExceptionTest < private static final Logger LOG = Logger.getLogger(FileNotFoundExceptionTest.class); private String fileName = Double.toString(Math.random()); protected void readFailingFile() throws IOException < BufferedReader rd = new BufferedReader(new FileReader(new File(fileName))); rd.readLine(); // no need to close file >class BusinessException extends RuntimeException < public BusinessException(String string, FileNotFoundException ex) < super(string, ex); >> >
4.1. Регистрация исключения
Если вы запустите следующий код, он “зарегистрирует” ошибку в консоли:
@Test public void logError() throws IOException < try < readFailingFile(); >catch (FileNotFoundException ex) < LOG.error("Optional file " + fileName + " was not found.", ex); >>
4.2. Создание исключения для конкретного бизнеса
Далее приведен пример создания исключения для конкретного бизнеса, чтобы ошибка могла быть обработана на верхних уровнях:
@Test(expected = BusinessException.class) public void raiseBusinessSpecificException() throws IOException < try < readFailingFile(); >catch (FileNotFoundException ex) < throw new BusinessException( "BusinessException: necessary file was not present.", ex); >>
4.3. Создание файла
Наконец, мы попытаемся создать файл, чтобы его можно было прочитать (возможно, для потока, который непрерывно читает файл), но снова поймаем исключение и обработаем возможную вторую ошибку:
@Test public void createFile() throws IOException < try < readFailingFile(); >catch (FileNotFoundException ex) < try < new File(fileName).createNewFile(); readFailingFile(); >catch (IOException ioe) < throw new RuntimeException( "BusinessException: even creation is not possible.", ioe); >> >
5. Заключение
В этой быстрой записи мы видели, когда может возникнуть исключение FileNotFoundException и несколько вариантов его обработки.
Как всегда, полные примеры находятся на Github .
Читайте ещё по теме:
FileNotFoundException в Java
В этой статье мы поговорим об очень распространенном исключении в Java —FileNotFoundException.
Мы рассмотрим случаи, когда это может произойти, возможные способы лечения и несколько примеров.
**2. Когда выбрасывается исключение?
Как указано в документации API Java, это исключение может быть создано, когда:
- Файл с указанным путемdoesnot существует
- Файл с указанным путемdoes существуетbutis inaccessible по какой-то причине (запрошена запись для файла, доступного только для чтения, или разрешения не позволяют получить доступ к файлу)
3. Как с этим справиться?
Прежде всего, учитывая, что он расширяетjava.io.IOException, который расширяетjava.lang.Exception, вам нужно будет иметь дело с ним с блокомtry-catch, как с любым другим проверенным Exception.
Затем, что делать (связанное с бизнесом / логикой) внутри блокаtry-catch, на самом деле зависит от того, что вам нужно делать.
- Создание исключения для бизнеса: это может быть ошибка остановки выполнения, но вы оставите решение на верхних уровнях приложения (не забудьте включить исходное исключение)
- Предупредить пользователя диалоговым окном или сообщением об ошибке: это не ошибка остановки выполнения, поэтому достаточно простого уведомления
- Создайте файл: прочитав необязательный файл конфигурации, не найдя его и создав новый файл со значениями по умолчанию
- Создайте файл по другому пути: вам нужно что-то написать, а если первый путь недоступен, попробуйте найти отказоустойчивый
- Просто зарегистрируйте ошибку: эта ошибка не должна останавливать выполнение, но вы регистрируете ее для дальнейшего анализа
4. Примеры
Теперь мы рассмотрим несколько примеров, все из которых будут основаны на следующем тестовом классе:
public class FileNotFoundExceptionTest < private static final Logger LOG = Logger.getLogger(FileNotFoundExceptionTest.class); private String fileName = Double.toString(Math.random()); protected void readFailingFile() throws IOException < BufferedReader rd = new BufferedReader(new FileReader(new File(fileName))); rd.readLine(); // no need to close file >class BusinessException extends RuntimeException < public BusinessException(String string, FileNotFoundException ex) < super(string, ex); >> >
4.1. Регистрация исключения
Если вы запустите следующий код, он «зарегистрирует» ошибку в консоли:
@Test public void logError() throws IOException < try < readFailingFile(); >catch (FileNotFoundException ex) < LOG.error("Optional file " + fileName + " was not found.", ex); >>
4.2. Создание исключения для бизнеса
Далее приведен пример создания бизнес-исключения, чтобы ошибка могла быть обработана на верхних уровнях:
@Test(expected = BusinessException.class) public void raiseBusinessSpecificException() throws IOException < try < readFailingFile(); >catch (FileNotFoundException ex) < throw new BusinessException( "BusinessException: necessary file was not present.", ex); >>
4.3. Создание файла
Наконец, мы попытаемся создать файл, чтобы его можно было прочитать (возможно, для потока, который постоянно читает файл), но снова перехватим исключение и обработаем возможную вторую ошибку:
@Test public void createFile() throws IOException < try < readFailingFile(); >catch (FileNotFoundException ex) < try < new File(fileName).createNewFile(); readFailingFile(); >catch (IOException ioe) < throw new RuntimeException( "BusinessException: even creation is not possible.", ioe); >> >
5. Заключение
В этой быстрой записи мы увидели, когда может произойтиFileNotFoundException, и несколько вариантов решения этой проблемы.
Как всегда, полные примеры -over on Github.