首頁 >Java >java教程 >Java 使用者定義的異常

Java 使用者定義的異常

WBOY
WBOY原創
2024-08-30 16:15:081138瀏覽

Java 使用者定義異常是建立的自訂異常,並使用關鍵字「throw」拋出該異常。這是透過擴展“Exception”類別來完成的。異常是程式執行過程中出現的問題。在物件導向程式語言中,Java提供了強大的機制來處理此類異常。 Java允許創建自己的異常類,它提供自己的異常類實作。此類異常稱為使用者定義的異常或自訂異常。讓我們更深入地研究一下 Java 中如何建立使用者定義的異常、它的語法(如果有的話)以及它是如何透過解決一些範例來實現的。

廣告 該類別中的熱門課程 JAVA 掌握 - 專業化 | 78 課程系列 | 15 次模擬測驗

開始您的免費軟體開發課程

網頁開發、程式語言、軟體測試及其他

文法:

對於 Java 使用者定義的異常,我們沒有任何特定的語法;我們將看到如何建立使用者定義的異常。

下面的程式碼將有助於建立使用者定義的異常類,

class SampleException{
public static void main(String args[]){
try{
throw new UserException(<value>); // used to create new exception and throw
}
catch(Exception e){
System.out.println(e);
}
}
}
class UserException extends Exception{
// code for exception class
}

這裡,在建立異常類別時,需要從java.lang.Exception類別擴展。 lang.Exception.

異常是導致程式在執行時執行過程中突然終止的事件。

範例

讓我們討論一下 Java 使用者定義異常的範例。

範例#1:簡單程式

class SampleException{
public static void main(String args[]){
try{
throw new UserException(400);
}
catch(UserException e){
System.out.println(e) ;
}
}
}
class UserException extends Exception{
int num1;
UserException(int num2) {
num1=num2;
}
public String toString(){
return ("Status code = "+num1) ;
}
}

輸出:

關鍵字「throw」用於建立一個新的異常並將其拋出到 catch 區塊。

Java 使用者定義的異常

範例 #2:對於無效 ID

class EmployeeException extends Exception
{
public EmployeeException(String s)
{
super(s);
}
}
class SampleEmp
{
void empIDCheck(int EmpID) throws EmployeeException{
if(EmpID<=0 || EmpID>999){
throw new EmployeeException("Invalid Employee ID");
}
}
public static void main(String args[])
{
SampleEmp emp = new SampleEmp();
try
{
emp.empIDCheck(0);
}
catch (EmployeeException e)
{
System.out.println("Exception caught");
System.out.println(e.getMessage());
}
}
}

輸出:

Java 使用者定義的異常

如果我們在這裡不使用 throw 類,則會給出編譯錯誤「方法中未處理的異常」。

範例#3:對於小於定義值的值

class SampleException extends Exception
{
private int e;
SampleException(int num1)
{
e = num1;
}
public String toString()
{
return "(" + e +") is less than Ten";
}
}
class Demo1
{
static void sum(int num,int num1) throws SampleException
{
if(num1<10)
{
throw new SampleException(num1);
}
else
{
System.out.println(num+num1);
}
}
public static void main(String[] args)
{
try
{
sum(-5, 4);
}
catch(SampleException e1)
{
System.out.println(e1);
}
}
}

輸出:

Java 使用者定義的異常

範例 #4:檢查 ID 有效性

class IDNotValid extends Exception
{
public IDNotValid(String s) {
super(s);
}
}
class Demo
{
static void find(int array[], int id) throws IDNotValid
{
boolean stdFlag = false;
for (int i = 0; i < array.length; i++) {
if(id == array[i])
stdFlag = true;
}
if(!stdFlag)
{
throw new IDNotValid("ID is not Valid!");
}
else
{
System.out.println("ID is Valid!");
}
}
public static void main(String[] args)
{
try
{
find(new int[]{101, 102, 103, 104, 105, 106, }, 108);
}
catch(IDNotValid e)
{
System.out.println(e);
}
}
}

輸出:

Java 使用者定義的異常

這裡我們產生自己的異常實作。

使用這些使用者定義的異常有很多優點;它允許使用者拋出使用者想要的異常。用戶還可以重複使用任何現有的應用程式;任何捕獲異常的程式碼都會處理實際異常的可能性,該異常不是由程式碼引發的,而是由其他第三方程式碼引發的。
使用者可以將錯誤處理代碼與常規代碼分開,對錯誤類型進行分組和區分。
創建異常類別也有一些規則。

  • 建構子: 在自訂異常類別中建立任何建構函式時,這不是必需的。在自訂異常類別中提供參數化建構函數是一種很好的做法。
  • 命名約定:所有異常類別均由JDK端提供;因此,自訂異常應該遵循命名約定。
  • 擴充異常類:如果使用者正在建立自訂異常類,則使用者必須擴充異常類。

至此,我們的主題「Java使用者異常類別」就結束了。幾乎所有 Java 中常見的異常都在 Java 程式設計中發生。我們已經看到了使用者定義異常類別的創建,也看到了一些使用者定義異常的範例。使用者不需要在類別中實作任何東西;不需要任何方法,也可以重寫 toString() 函數來顯示自訂訊息。

以上是Java 使用者定義的異常的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:Java 中斷異常下一篇:Java 中斷異常