КомпютриПрограмиране

Java: изключения и тяхната работа

Всяка програма ще работи стабилно, само ако изходния код е отстраняването на грешките, и няма условия, които могат да доведат до непредвидени ситуации. Процесът на догонване възможни повреди се извършва на етапа на програмиране. За да направите това, разработчикът взема предвид всички очаквани резултати и се опитва да ограничи ефекта от грешката, така че да не може да попречи на работата на програмата, или да доведе до неговия крах.

Когато може да се наложи обработка на изключения

В Java изключение може да бъде причинено от неправилно въвеждане на потребителя, няма нужда от внезапен програма мрежа прекъсване ресурс или. За удобство при използване създадена от разработчика на приложение, трябва да се контролира настъпването на извънредни ситуации. Потребителят не бива да се наложи да изчакате, за да се откажат от дадено приложение, за да загубите данни в резултат на необработено изключение, или само част от него покаже съобщение, че нещо се обърка.

Работа Java изключения

Какво да се помисли? Езикът Java разполага със собствена вградена функционалност обработка на изключения. Разбира се, голям процент от грешка е хванат от друг етап компилация, системата автоматично ще уведоми, че използването, вече не е възможно. Но има този вид изключение, което се случва по време на изпълнение. Предприемачът трябва да бъде в състояние да го предвиди и да се изработи кода, така че да не причини грешка, и тя работи по специален начин и е предала контрола на друг клон.

В Java, това е наложено от компилатора да хване изключение, така са известни типичните проблеми и имат стандартен модели за упражнения.

типични изключвания

Най-простият пример, в който можете да получите изключение - това разделение. Въпреки своята простота, от гледна точка, тъй като разделител може да бъде нула, което ще доведе до грешка. Е, ако това е възможно да се предскаже появата на миналото и да се предотврати. Но този вариант не винаги е на разположение, така улов изключение трябва да се организира директно в случай на "разделяй от нула".

Механизмът Java да прихване грешка при обработването изглежда така:

  • купчина изключение обект се създава, както и всяка друга;
  • естествения ход на програмата е прекъсната;
  • механизъм за изключване се опитва да намери алтернативен начин за продължаване на кода;
  • Намерете безопасно изпълнение на програмата в процесора, работата или възстановена, или ще настъпи реализация на изключение по специален начин.

Най-простият пример за създаване на грешка може да изглежда така:

ако (а == нула)

хвърли нова NullPointerException ();

Тук променлива за да се проверява във инициализация, т.е. не е дали препратката към нулев обект. Ако тази ситуация е възникнала и се нуждаят от специална обработка, изключение е хвърлен от хвърляне нов NullPointerException ().

Малко подробности за ключови думи

Когато става въпрос за изключения, често е необходимо да се използва Java ключовата дума се отнася до конкретно действие. Този език от техния програмен пет:

  • Опитайте. Тази ключова дума е вече изпълнено, и това означава преход в част от код, който може да се хвърли изключение. Блок ограничени скоби {}.
  • Catch. Те приемат желания тип изключение и да се справя по подходящ начин.
  • Най-накрая. Тази ключова дума не е задължително и се използва за извършване на определена част от код, който така или иначе е необходимо, дори и да не е изключение, не е хванат. Добавен непосредствено след опит да го блокира.
  • Хвърли - ви позволява да създавате Java изключения от всяко място.
  • Хвърля - ключова дума, която се поставя в подписването на метод. Това означава, че следния код може да се хвърли изключение от този тип Java. Тази маркировка служи като сигнал за разработчиците, които трябва да се има предвид - методът не може да работи, както се очаква от него.

Хващане с пробвам

Освободете за Java изключения, естествено предполага, че тя ще се обработват по специален начин. Най-удобният начин да го направя, ако секцията код е ограден в блок. Които могат да съдържат изключение. Когато стартирате този код, виртуалната машина ще намерите неочаквана ситуация, разбирам, че има критична блок и предава управлението на станцията с обработката.

Кодът Java е обвито в специален блок пробвам, в рамките на която може да бъде изключение. По този начин, той поставя няколко непредвидени ситуации, които ще бъдат уловени в едно и също място, не raspolzayas код.

Най-типичната код, за да устройството за обработка е както следва:

опитайте {

// Ето малко код, който може да генерира изключение

} Улов (Tip_isklyucheniya_1 identifikator_1) {

// Тук има обработка на изключения, в зависимост от типа и условия;

} Улов (Tip_isklyucheniya_2 identifikator_2) {

// Тук има обработка на изключения, в зависимост от типа и условия;

}

Ключова дума улов съобщава, че кода и го сканира за изключение, да бъдат третирани, както е описано по-долу, при условие че то отговаря на неговия вид. Идентификаторът може да се използва при обработката на код блок като аргументи.

накрая

Както стана ясно от предишната глава, блокове за прилов изключения и ги обработват. Но много често ситуацията възниква, когато би трябвало да работи някакъв код, независимо от това дали те са били уловени грешки. За това има ключовата дума, най-накрая. Той се използва за повишаване на стойностите на различни гишета, затваряне на файлове или мрежови връзки.

Този парцел представя няколко блока улов измислили методи хванат изключения. Например, кодът се съдържа в опит генерира неочаквана ситуация като Cold. След това, на конзолата ще се появи израз «Хванати студено!" И "Това ли е нещо, което да развесели това?». Това означава, че най-накрая блок се изпълнява във всеки случай.

В действителност, начин да се избегне задействането накрая там. Той е свързан с изграждането на виртуална машина. Намерете как да се приложи, е възможно в интернет открити пространства.

Хвърляне на ключова дума

Хвърляне генерира изключение. Нейният синтаксис е както следва:

хвърли нова NewException ();

Там се създава нова изключение от NewException тип (). Като тип може да се използва вече е включено в стандартните класове Java библиотека и предварително дефинирани от разработчика на собственото си производство.

Този дизайн е част от описанието на всеки метод, който повикването след това трябва да се случи в рамките на блока опит, за да бъде в състояние да го пресрещне.

Ключова дума хвърля

Какво става, ако в процеса на развитие на ситуация, в която този метод може да се хвърли изключение, но не са в състояние да се справят правилно. За тази цел, в подписването на метод определя думата хвърля и вида на възможните изключения.

Този етикет е един вид показател за разработчиците на клиента, че методът не е в състояние да се справят с тяхната същото изключение. Освен това, ако видът на грешката се проверява, компилаторът ще принуди изрично поиска това.

Опитайте се да ресурси

В Java версия 7 разработчиците са включени основно нововъведение, като средство за лечение пробвам блок с ресурси.

Много се създават обекти в Java, след употреба трябва да се изключил ресурси. Преди това тя трябваше да вземе това под внимание и да се спре тези случаи ръчно. Сега, обаче, те изглеждаха AutoClosable интерфейс. Той помага да се затваря автоматично вече използват обекти, поставени в опитам да го блокира. Чрез този подход е станало по-удобен за писане на код в неговата четливост се увеличи значително.

Собствени класове Java изключения

Създателите на описаната език за програмиране е взел предвид редица аспекти на видовете дизайн на извънредни ситуации. Въпреки това, всички опции, за да се предотврати резултата от събития няма да работи, така че в Java въвели възможност да определят свои собствени изключения, е целесъобразно към нуждите на конкретния код.

Най-лесният начин да се създаде - да наследи от най-подходящи за контекста на обекта.

Там се е случило, за да наследя от Изключение, клас, който се използва за определяне на собствени изключения. В MyException има два конструктора - по подразбиране, а вторият - с низ аргумент тип съобщ.

След това, в обществен класната стая FullConstructors реализира метод F, който съдържа подписа на хвърля MyException. Това означава, че ключовата дума е да се хвърлят като Java MyException изключение. Освен това, в тялото на метод, произведена продукция текстова информация за самата конзола и действителната MyException поколение, като хвърлят.

Вторият метод е малко по-различен от първия, че когато създадете изключение, то се предава параметър низ, което ще бъде отразено в конзолата на вниманието. В основни става ясно, че е () и г () са поставени в опит проверка и улов дума конфигуриран да улови MyException. Резултатът от обработката ще се покаже съобщение за грешка на конзолата:

Така се стигна до добавите Java изключения, от собствената си ръка.

Архитектура изключения

Както при всички обекти в Java, изключения също са наследени и имат йерархична структура. основния елемент на всички грешки, хвърлени на този език за програмиране е клас java.lang.Throwable. Наследено от него два вида - Грешка и изключение.

Грешка - сигнализира за критична грешка и не е маркирана Java изключения. Прихващане и обработка на такива данни, в повечето случаи се случва в етап на проектиране и не се нуждае от въвеждане в окончателния код приложение.

Най-често използвания клас за създаване и анализ на изключенията е изключение. Което, от своя страна, се разделя на няколко клона, включително RuntimeException. По време на изпълнение RuntimeException са изключения, тоест, получена по време на програмата. Всички класове, получени от него са недоказуеми.

Често има и изключения

В Java изключения, списъкът на които е представен по-долу, се използват най-често, така че трябва да се опише всеки един от тях в детайли:

  • ArithmeticException. Те включват грешки, свързани с аритметични операции. Най-ярък пример - разделението на нула.
  • ArrayIndexOutOfBoundsException - призив към номера на елемент от масива, който надвишава общата стойност на дължината му.
  • ArrayStoreException - опит за присвояване несъвместим елемент тип на масива.
  • ClassCastException - опит да се въвеждат по грешен един вид в друг.
  • IllegalArgumentException - използване на грешен аргумент в викането на метода.
  • NegativeArraySizeException - по изключение, когато създавате масив от отрицателен размер.
  • NullPointerException - злоупотреба с препратки към нула.
  • NumberFormatException - възниква, когато погрешно преобразуване низ в цяло число.
  • UnsupportedOperationException - операция не се поддържа.

Тези примери представляват видовете непроверени Java изключения. така Но вижте проверени:

  • ClassNotFoundException - клас не е намерен.
  • IllegalAcccessException - ограничаване на достъпа до класа.
  • InterruptedException - прекъсване на потока.
  • NoSuchFieldException - там не са задължително поле.

Тълкуването на изключенията

Говорейки за често срещаните изключения следва да се отбележи, че тяхното тълкуване в проектирането, могат да се възприемат неправилно. След това е кратък списък обясни по-подробно, където може да има неочакван ситуация.

NullPointerException. Още първият случай, когато има изключение, е да се хареса на препратка към един обект, който е равен на нула. Това се отнася и за методите на нула клас например. NullPointerException могат да бъдат хвърлени в случай на получаване на еднаква дължина нула масив. За да се избегнат подобни ситуации периодично ще проверява сайтове в нула.

ArrayIndexOutOfBoundsException. Всяка програма не може да съществува без използването на масиви. Съответно, честото прибягване до него може да генерира и грешката. Изключение се случва, когато един разработчик се опитва да получи достъп до елемент на масив, който не е в списъка с индекс. Например, исканата стойност е над или под нула дължина. Много често е в резултат на факта, че в масива започва с резултат нула.

данни

Работа Java изключения - мощен инструмент на околната среда, което значително улеснява работата на програмист и му позволява да създадете чист и лишен от кодови грешки. На колко гладко и стабилно функциониране прилагане зависи от статута и репутацията на строителя.

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

За Java изключение грешка, от която възниква в някои приложения, някои компании предлагат награда, когато намерят ентусиасти. Особено ценени от тези, които предизвикват нарушение на софтуера за политика на сигурност.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 bg.delachieve.com. Theme powered by WordPress.