The Java хвърля ключова дума се използва за деклариране на изключение. Той дава информация на програмиста, че може да възникне изключение. Затова е по-добре програмистът да предостави кода за обработка на изключения, за да може да се поддържа нормалният поток на програмата.
Обработката на изключения се използва главно за обработка на проверените изключения. Ако възникне някакво непроверено изключение като NullPointerException, грешката е на програмиста, че той не проверява кода, преди да бъде използван.
разделител java
Синтаксис на Java хвърляния
return_type method_name() throws exception_class_name{ //method code }
Кое изключение трябва да се декларира?
Години: Отметнато само изключение, защото:
Предимство на Java хвърля ключова дума
Изключението Now Checked Exception може да бъде разпространено (препратено в стека на повикванията).
Той предоставя информация на извикващия метода за изключението.
Java хвърля Пример
Нека видим примера на Java throws клауза, която описва, че проверените изключения могат да бъдат разпространени чрез throws ключова дума.
Testthrows1.java
import java.io.IOException; class Testthrows1{ void m()throws IOException{ throw new IOException('device error');//checked exception } void n()throws IOException{ m(); } void p(){ try{ n(); }catch(Exception e){System.out.println('exception handled');} } public static void main(String args[]){ Testthrows1 obj=new Testthrows1(); obj.p(); System.out.println('normal flow...'); } }Тествайте сега
Изход:
exception handled normal flow...
Правило: Ако извикваме метод, който декларира изключение, трябва или да уловим, или да декларираме изключението.
Има два случая:
Случай 1: Обработка на изключение с помощта на блок try-catch
В случай, че обработим изключението, кодът ще се изпълни добре, независимо дали изключение възникне по време на програмата или не.
изтеглете autocad 2019 на английски mediafire
Testthrows2.java
import java.io.*; class M{ void method()throws IOException{ throw new IOException('device error'); } } public class Testthrows2{ public static void main(String args[]){ try{ M m=new M(); m.method(); }catch(Exception e){System.out.println('exception handled');} System.out.println('normal flow...'); } }Тествайте сега
Изход:
exception handled normal flow...
Случай 2: Деклариране на изключение
- В случай, че декларираме изключение, ако изключение не възникне, кодът ще бъде изпълнен добре.
- В случай, че декларираме изключението и изключението възникне, то ще бъде хвърлено по време на изпълнение, защото хвърля не обработва изключението.
Нека видим примери и за двата сценария.
скенер следващ
А) Ако не възникне изключение
Testthrows3.java
import java.io.*; class M{ void method()throws IOException{ System.out.println('device operation performed'); } } class Testthrows3{ public static void main(String args[])throws IOException{//declare exception M m=new M(); m.method(); System.out.println('normal flow...'); } }Тествайте сега
Изход:
device operation performed normal flow...
Б) Ако възникне изключение
Testthrows4.java
import java.io.*; class M{ void method()throws IOException{ throw new IOException('device error'); } } class Testthrows4{ public static void main(String args[])throws IOException{//declare exception M m=new M(); m.method(); System.out.println('normal flow...'); } }Тествайте сега
Изход:
Разлика между хвърляне и хвърляния
Кликнете върху мен за подробностиВъпрос) Можем ли да хвърлим отново изключение?
Да, чрез хвърляне на същото изключение в catch блок.