предоставя на потребителя опцията да създава свои собствени изключения. Такива изключения са известни като потребителски изключения или дефинирани от потребителя изключения. В тази статия ще разгледаме потребителски изключения в Java.
Следните указания ще бъдат обхванати в тази статия,
Първи стъпки в тази статия за персонализирани изключения в Java.
Персонализирани изключения в Java
Персонализирани изключения могат да бъдат създадени, както следва,
[Java]
// клас, който представлява дефинирано от потребителя изключение
клас InvalidAgeException разширява изключение {
InvalidAgeException (String s) {
супер (и)
}
}
[/ java]
// клас, който използва InvalidAgeException клас Test {static void validate (int age) хвърля InvalidAgeException {if (age<18) throw new InvalidAgeException('Invalid') else System.out.println('Eligible to Drive') } public static void main(String args[]){ try{ validate(15) }catch(Exception m){System.out.println('Exception: '+m)} System.out.println('Exit') } }
Изход:
Изключение: InvalidAgeException: Невалидно
Изход
Продължавайки с тази статия за персонализирани изключения в Java.
Необходимост от персонализирани изключения
Често пъти програмистът открива необходимостта да посочи собственото си изключение.
Причините за въвеждането на тези изключения могат да бъдат следните:
- Има определени изключения, които са дефинирани само за бизнес логика и работен поток. Това позволява на потребителите да определят източника на проблема.
- За улавяне и обработка на съществуващите или предварително дефинираните Java изключения.
Java предоставя на потребителя две изключения:
- Проверено по избор изключение
- Персонализирано непроверено изключение
Продължавайки с тази статия за персонализирани изключения в Java.
java е-връзка
Персонализирани проверени изключения
Проверените по избор изключения са изключения, които разширяват java.lang.Exception. Те са възстановими по природа и се обработват изрично. В следващия пример се записва код, който да върне първия ред на файла като изход:
опитайте (Scanner file = new Scanner (new File (fileName))) {if (file.hasNextLine ()) return file.nextLine ()} catch (FileNotFoundException e) {}
Кодът изхвърля изключението FileNotFound. Причината за това изключение е неизвестна за потребителя. Не знаем за източника на изключението, независимо дали е причинено поради несъществуването на файла или поради невалидно име на файл. За внедряване на персонализирано изключение класът java.lang.Exception се разширява.
публичен клас InvalidFileNameException разширява изключение {public InvalidFileNameException (String errorMessage) {super (errorMessage)}}
Създава се персонализирано изключение, наречено InvalidFileNameException.
По време на създаването на изключението трябва да се предостави конструктор. В нашия случай конструкторът приема String като съобщение за грешка и извиква конструктора на родителски клас.
опитайте (Scanner file = new Scanner (new File (fileName))) {if (file.hasNextLine ()) return file.nextLine ()} catch (FileNotFoundException e) {if (! isCorrectFileName (fileName)) {throw new InvalidFileNameException ( 'Невалидно име на файл:' + име на файл)}}
Въпреки че потребителят вече е наясно с точното изключение, загубихме първопричината за изключението. Това може да бъде коригирано чрез добавяне на java.lang.Throwable към конструктора. InvalidFileNameException вече може да се използва с основната причина за изключението:
публично InvalidFileNameException (String errorMessage, Errowable err) {super (errorMessage, err)}
Продължавайки с тази статия за персонализирани изключения в Java
Персонализирани непроверени изключения
Проверените по избор изключения разширяват java.lang.RuntimeException. Те са непоправими по природа.
публичен клас InvalidFileExtensionException разширява RuntimeException {public InvalidFileExtensionException (String errorMessage, Errowable error) {super (errorMessage, err)}}
Това изключение се използва, както следва:
опитайте (Scanner file = new Scanner (new File (fileName))) {if (file.hasNextLine ()) {return file.nextLine ()} else {хвърли нов IllegalArgumentException ('Файлът не се чете.')}} catch ( FileNotFoundException грешка) {if (! IsCorrectFileName (fileName)) {хвърли нов InvalidFileNameException ('Невалидно име на файл:' + fileName, грешка)}} catch (IllegalArgumentException err) {if (! ContainsExtension (fileName) няма разширение: '+ fileName, грешка)}}
Дефинираните от потребителя изключения са от съществено значение, тъй като ни позволяват да дефинираме изключения, които са наши собствени.
Така стигнахме до края на тази статия. Ако искате да научите повече, разгледайте Java Training от Edureka, доверена компания за онлайн обучение. Курсът за обучение и сертифициране на Java J2EE и SOA на Edureka е предназначен да ви обучи както за основните, така и за разширените Java концепции, заедно с различни Java рамки като Hibernate & Spring.
Имате въпрос към нас? Моля, споменете го в раздела за коментари на този блог и ние ще се свържем с вас възможно най-скоро.