Exception Handling Flashcards
1
Q
What is exception?
A
- неочаквано събитие, което нарушава потока на работа на програмата
- обект от клас java.lang.Throwable
- хвърля се в Run-Time
- носи информация за типа на грешката и състоянието на програмата в момента на грешката
- може да бъде обработено чрез try-catch
2
Q
What are the different types of exceptions in Java?
A
- checked (compile-time) - наследява от класа Exception
- unchecked (run-time) - наследява от RuntimeException
- errors - наследява от Error
3
Q
How can we apply exception handling in Java?
A
- механизъм за прихващане на изключения
- позволява ни да предприемем мерки, за да възстановим нормалното изпълнение
- използваме try-catch block
4
Q
What are the specifics of try, catch and finally blocks?
A
- try:
- позволява да оградим кода, който може да хвърли exception
- трябва да се изпълнява в метода
- ако се появи изключение, try не се изпълнява нататък
- трябва да бъде последван от catch или finally
- добра практика е да се използва само при вероятност от exception в блока
- catch:
- обработва exception-a
- трябва да кажем за какъв тип изключение отговаря (първо най-специфичните, после най-общите)
- използва се само след try
- може да бъде последван от finally block
- може да има повече от един catch block
- един catch може да обработи много exception-и, стига всички да изискват едно и също решение
- finally:
- изпълнява се независимо дали има exception или не
- използва се за важен код и затваряне на потоци
- може да има само един finally block
- винаги следва try или catch block
5
Q
When and how should we throw exceptions?
A
- когато метод не може да продължи своето изпълнение
- ключовата дума е “throw”
- exception-ите се обработват от други методи, които знаят какво да правят с тях
- можем да хвърляме checked или unchecked
- ако метод хвърля checked exception, то трябва да декларира какъв тип exception хвърля чрез ключовата дума “throws”
6
Q
List some best practices for exception handling?
A
- използваме exceptions само при наистина нетипични ситуации
- само когато методът не може да се изпълни
- да хващаме exceptions където можем да ги обработим най-добре
- не използваме exceptions ако могат да бъдат заместени с if-else
- избягваме излишна употреба на checked exceptions
- хващаме първо най-специфичния exception
- не хващаме throwable
- не игнорираме exceptions (не оставяме празни catch блокове)
- избягваме в catch да имаме само записана информация за изключението и повторно хвърляне
7
Q
What is stream and what are the main types in Java?
A
- последователност от данни, които преминават от източника към получателя
- могат да бъдат входни или изходи потоци
- Byte and Character:
- Byte - представлява сурови двоични данни, в които всеки byte = 8-bit (аудио, видео и изображения)
- Character - представлява текстови данни с 16-bit Unicode символи
8
Q
What is try-with-resources and why do we use it?
A
- конструкция в Java, която автоматично затваря ресурси след използването им
- ресурсът трябва да имплементира AutoClosable интерфейса
- ресурсите, които са декларирани първи, ще бъдат затворени последно
- може да има catch и finally block