logo

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

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

Обработката на изключения се използва главно за обработка на проверените изключения. Ако възникне някакво непроверено изключение като NullPointerException, грешката е на програмиста, че той не проверява кода, преди да бъде използван.

разделител java

Синтаксис на Java хвърляния

 return_type method_name() throws exception_class_name{ //method code } 

Кое изключение трябва да се декларира?

Години: Отметнато само изключение, защото:

    непроверено изключение:под наш контрол, за да можем да коригираме нашия код.грешка:извън нашия контрол. Например не можем да направим нищо, ако възникне VirtualMachineError или StackOverflowError.

Предимство на 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.Случай 2:Ние сме декларирали изключението, т.е. зададена ключова дума throws с метода.

Случай 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...'); } } 
Тествайте сега

Изход:

Java throw ключова дума

Разлика между хвърляне и хвърляния

Кликнете върху мен за подробности

Въпрос) Можем ли да хвърлим отново изключение?

Да, чрез хвърляне на същото изключение в catch блок.