導航:首頁 > 編程語言 > javatrycatch怎麼執行

javatrycatch怎麼執行

發布時間:2023-08-13 19:00:05

java中, try catch(IOException s)什麼意思,怎麼用

這是java用來捕捉異常的,捕捉程序在運行時可能出現的異常。
1,當代碼在運行時可能出現異常時用try{} catch{}捕捉異常,這樣程序出現異常不會立即跳出程序,可以經過餘明漏處理後讓程序繼續運行或者跳出。例如:
String a = "12211a";
try {
int b = Integer.parseInt(a); // 將字元串轉為數字,a裡面有字母,轉換失敗,將會拋出異常。
System.out.println("is a number:"+b);
} catch (Exception e) {
System.out.println("not a number");
}
2,還有很多其他異常,列舉一些常見異常:

算術異常類:
ArithmeticExecption
空指針異常類:
NullPointerException
類型強制轉換異常:
ClassCastException
類未找到異常:
ClassNotFoundException
數組負下標異常:
NegativeArrayException
數組下標越界異常:

違背安豎爛全原則異常:
SecturityException
文件已結束異常:
EOFException
文件槐旦未找到異常:
FileNotFoundException
字元串轉換為數字異常:
NumberFormatException
操作資料庫異常:
SQLException
輸入輸出異常:
IOException

Ⅱ Java中try catch

這段代復碼
1.返回的值是5

2.沒有任何輸出制效果。
執行過程:
1.首先執行main方法。調用靜態函數getconn();
2.定義變數conn
。初始值為8.
3.進入try
代碼塊。將conn的值改寫成5.過程中沒有發生異常。跳過catch語句塊。
4.執行return語句,返回conn變數值,5。
5.返回函數調用的地方,也就是主函數。
6.運行結束。
代碼要點解釋:
使用try
catch
1.無異常發生
包裹起來的代碼塊執行時與正常的語句塊沒有不同。
2.發生異常
21.try語句塊中,從發生異常的哪行代碼處斷開,不再往下執行,跳轉到catch語句塊中
22.程序會根據try中發生的異常的類型,選擇最合適的catch語句塊。按照catch的順序向下選擇,遇到適當的范圍,就會進入catch塊執行並跳出catch,注意catch語句可以有多個,但只執行一次。因此應當按照范圍從小到大排列。
23.try
catch語句執行完後會繼續執行catch後面的語句,不會重新返回try中。

Ⅲ 請問JAVA中 try-catch-finally 語句的執行順序是怎麼樣的啊

try中寫正確的程序。catch中處理異常,finally無論如何都會執行裡面的代碼塊。就像連接資料庫一樣,不管正確與否都
要在finally中關閉

Ⅳ JAVA語言如何進行異常處理

Java通過面向對象的方法進行異常處理,把各種不同的異常進行分類,並提供了良好的介面。在Java中,每個異常都是一個對象,它是Throwable類或其它子類的實例。當一個方法出現異常後便拋出一個異常對象,該對象中包含有異常信息,調用這個對象的方法可以捕獲到這個異常並進行處理。Java的異常處理是通過5個關鍵詞來實現的:try、catch、throw、throws和finally。一般情況下是用try來執行一段程序,如果出現異常,系統會拋出(throws)一個異常,這時候你可以通過它的類型來捕捉(catch)它,或最後(finally)由預設處理器來處理。x0dx0a用try來指定一塊預防所有異常的程序。緊跟在try程序後面,應包含一個catch子句來指定你想要捕捉的異常的類型。x0dx0athrow語句用來明確地拋出一個異常。x0dx0athrows用來標明一個成員函數可能拋出的各種異常。x0dx0a可以在一個成員函數調用的外面寫一個try語句,在這個成員函數內部寫另一個try語句保護其他代碼。每當遇到一個try語句,異常的框架就放到堆棧上面,直到所有的try語句都完成。

Ⅳ 應用技巧:Java中的異常處理

異常處理是初學者經常忽視執行的編程技巧。然而,當他們完成了一項大型項目後,就會發現僅僅停留在表面的工作是不夠的。在本文中,我們將對異常處理進行討論,並為大家解釋其重要性,尤其是要告訴大家怎樣處理這些情況。
首先,讓我們解釋一下什麼是異常情況,通常也稱例外。正如在其他的編程語言中那樣,它也適用於Java:異常情況是那些在運行時出現錯誤的情況。這些錯誤並非真正的錯誤,因為他們是一些例外。我們可以將這些情況理解為必須解決的異常事件,否則程序將無法繼續執行。所以我們就有必要了解怎樣處理異常事件。
在異常事件的例子中最顯著的應該是在程序執行時,運行時的分配變成了零。這樣程序就無法執行,於是Java就會拋出一個異常事件,確切點說是ArithmeticException。從Java程序員的角度來看,異常事件是對象。拋出異常事件類似於拋出對象。但是,並非所有的對象都可以被拋出。
為了充分理解可畢山拋出的異常事件,整個類層次結構的一些部分要消數悶被提交。主要的類稱為Throwable。這個類擁有兩個子類:Exception 和Error。一個異常事件對象應從Throwable的類中傳出。意味著它應該是Exception子類或Error子類的一個對象實例。這些都可以在 java.lang數據包中找到。
異常處理就是捕捉可能在運行時被拋出的異常事件的一項技術。Java通過try-catch-finally的異常處理語句為我們提供了強大的異常處理解決方案。而在另一方面,你也可以使用已經聲明的異常事件,如ArithmeticException, NullPointerException等。其他類擴展了Exception 類,如IOException子類。
此外,我們應該注意到異常事件包含了兩種情況:檢查過的和沒檢查的。技術上,我們認為沒檢查過的異常事件RuntimeExceptions。這些不需要在拋出的語句中作出聲明,而且對它們的捕捉也是選擇性的。不過,它們一般不會有什麼影響,如果程序員根本不能發現它們的存在。在大多數情況下,這些都是邏輯性的編程錯誤,如NullPointerException或者ArrayIndexOutOfBounds。
同時,對異常事件進行技術性檢查也迫使程序員對其進行處理和管理,意味著要對其進行單獨捕捉並覆蓋。這些都來自Exceptions類和它的子類,包括我們之前討論過的RuntimeExceptions。檢查過的異常事件要求異常事件處理因為它們有可拿彎能導致程序終止。
現在,我們對異常事件有了個基本的了解,下面就讓我們啟動集成開發環境開始編碼吧!
異常處理
前面我們提到了異常處理就是指處理代碼中的異常事件,或者在運行時向運行引擎拋出異常事件,在引擎末端它會搜索異常事件處理常式。它使用包含了一系列方法調用的調用堆棧進行搜索。
一般而言,異常事件可能因為包含一個異常活動或其他非同步異常導致的。我們討論的異常事件包括了一些基本的處理議題:怎樣捕捉和處理這些異常事件。
Java允許我們創建自己的Exception對象和類,但是會有一個關鍵的請求。這些對象和類必須是擴展的Exception類。編碼標准要求異常事件應該充分命名,意味著它們的名字就代表了其本身。
throw new Exception(「 This is an exception!」)
下面,我們看看要怎樣捕捉和處理這些異常事件。檢查以下代碼:
try{
// this is the block of code where the exception happens
// sometimes called as source/root of exception
// or even called as tricky block or tricky method

catch{Exception_Typel e) {
// dealing with this kind of exception

Catch (Exception_Type2 e) {
// dealing witn this kind of exception

//... unlimited number of catches are possible
finally {
// this block of code is always executed

try-catch-finally語句的第一個部分是嘗試阻止。這是異常事件有可能發生的部分。通常,我們建議代碼行用最小的數量來編寫,因為它們只會在異常事件發生的時候執行。這種情況發生時,執行會跳轉去捕捉那些異常事件被比較的塊中。如果它們匹配,那麼就可以處理異常事件。
不論嘗試阻止的時候,異常事件會不會發生,或不管能不能得到處理,阻止總會執行。由於它總是被執行,所以我們推薦你在這里做一些清理。因此,正如所預料的那樣,執行起來就是具有選擇性的。
Try-catch模塊的結構類似於switch-case的結構。在檢查過的需要處理的異常事件中,是有可能在相同方法中將其處理或者拋出的。後者可以通過關鍵詞拋出。在這種情況下,異常事件的種類必須在方法簽名中被指定。看這個例子:
Void myMethod () throws SomeKindOfException{
// method goes here
}
接下來,我們將為大家展示更多的異常處理實例。
初學者常常與非匹配數據類型糾纏不清。通常,它們會引發一些問題,例如,在做加法時出現非數字型代碼。下面給大家展示的代碼中,出現了異常處理的工作環境。檢查該網頁以完成嵌入式Exception種類的清單。現在,我們要處理NumberFormatException 的發生。
public static void main (String args[] ) {
double sum= 0;
for (int i=0; i﹤args. length; ++1)
try {
sum+= Double.parseDboule (args[i]);
}
Catch (NumberFormatException e) {
Ststem.out.printIn(args[i] + 「non-numeric data on」);
}
System.out.printIn(「Total sum: 「+ sum);
}
正如你所見到的,它和命令行參數一起運行,而且一旦輪到非數字型參數,它就會寫入system.out,意指出現的問題。但是項目會繼續進行,因為try模塊是循環的。否則,沒有合適的異常處理,項目就會終止。用這種方式總和還是可以計算處理並在最後顯示處理。 我們來看看另一個例子。在這個例子中,我們會要建立自己的異常實例類,該類擴展了其母Exception類。應用程序會模擬用於異常處理和拋出的堆棧機制,如堆棧是滿的或者是空的。檢查一下。
Public class StackException extends Exception {
Public StackException (String text) {
Super (text)
}
}
現在讓我們創建一個Stack類。注意push和pop方法。它們正拋出StackException,而這一動作由方法簽名導入。此外,還有一個if條件,且條件滿足時,異常事件會被拋出。否則,一切都會順利運行。
public class Stack {
private final int SIZE = 100;
private Object st[];
private int size;
private int sp;
public Stack (int size) {
if (size < MAXSIZE)
this.size = size;
else
this.size = MAXSIZE;
this.st = new Object [size];
this.sp = -1;
}
public void push (Object o) throws StackException {
if (sp == this.size - 1)
throw new StackException ("Stack is full");
this.st [++this.sp] = o;
}
public Object pop () throws StackException {
if (sp == -1)
throw new StackException ("Stack is empty");
Object o = this.st [this.sp];
this.sp--;
return o;
}
public boolean isEmpty() {
return this.sp == -1;
}
}
好的,現在是時候寫一寫Main class連同主要方法了。在這一部分,請對try-catch語句給予更多關注。有兩類異常情況可以被捕捉到。你也可以很容易地找出它們。
public class Main {
public static void main (String args[]) {
Stack s = new Stack (10);
for (int i = 0; i <= 10; ++i)
try {
s.push (new Integer(i));
}
catch (StackException e) {
System.out.println (e);
}
while (! s.isEmpty() ) {
try {
System.out.println( (Integer)(s.pop()) );
}
catch (StackException e) {
System.out.println(e);
}
}
}
}
當然,這里也會有附帶輸出。如你所見,第一行顯示出的就是異常事件,因為我們要用11個要素填補堆棧,因此,在循環到isEmpty是錯誤的時,異常事件不會拋出。
Stack is full
練習幾次以上的幾段代碼。如果異常事件被拋出但是卻能夠正確被處理那就不要感到驚訝。這就是異常處理的神奇之處。
總結
在這篇文章里我們就異常處理的實用性和重要性進行了分析。我們都知道,不管是檢查過的或是未經檢查的,程序員都要處理好異常事件,否則可能出現程序的異常終止。我們強調要將理論與實踐相結合。坦率地說,本文雖只是冰山一角,但一些基本的知識已經介紹給了大家。希望能在異常處理方面對大家有所幫助。

Ⅵ java中try 與catch的使用

try{

//代碼區
}catch(Exception e){
//異常處理
}

try語句:
try語句用大括弧{}指定了一段代碼,該段代碼可能會拋棄一個或多個例外。
catch語句:
catch語句的參數類似於方法的聲明,包括一個例外類型和一個例外對象。例外類型必須為Throwable類的子類,它指明了catch語句所處理的例外類型,例外對象則由運行時系統在try所指定的代碼塊中生成並被捕獲,大括弧中包含對象的處理,其中可以調用對象的方法。
catch語句可以有多個,分別處理不同類的例外。Java運行時系統從上到下分別對每個catch語句處理的例外類型進行檢測,直到找到類型相匹配的catch語句為止。這里,類型匹配指catch所處理的例外類型與生成的例外對象的類型完全一致或者是它的父類,因此,catch語句的排列順序應該是從特殊到一般。
也可以用一個catch語句處理多個例外類型,這時它的例外類型參數應該是這多個例外類型的父類,程序設計中要根據具體的情況來選擇catch語句的例外處理類型。

Ⅶ Java里try catch的簡單用法

Java里try catch的簡單用法:
1、try+catch
程序的流程是:運行到try塊中,如果有異常拋出,則轉到catch塊去處內理。然容後執行catch塊後面的語句

擴展部分:

1、try+catch+finally
程序的流程是:運行到try塊中,如果有異常拋出,則轉到catch塊,catch塊執行完畢後,執行finally塊的代碼,再執行finally塊後面的代碼。
如果沒有異常拋出,執行完try塊,也要去執行finally塊的代碼。然後執行finally塊後面的語句

2、try+finally
程序的流程是:運行到try塊中,如果有異常拋出的話,程序轉向執行finally塊的代碼。那末finally塊後面的代碼還會被執行嗎?不會!因為沒有處理異常,所以遇到異常後,執行完finally後,方法就已拋出異常的方式退出了。

Ⅷ Java中異常處理語句有哪些

JAVA使用try-catch語句來處理異常。

將有可能出現的異常操作放在try-catch的try部分,一旦try部分拋出異常對象,或調用某個可能拋出異常對象的方法,並且該方法拋出了異常對象,那麼try立即結束執行,轉向catch部分。所以程序將發生異常後的處理放在catah部分。

Ⅸ 關於JAVA t中try-catch的用法

你所說的一個try-catch只能捕獲一個錯誤是對的,不論後面跟著多少個catch都一樣,try-catch語句是這樣執行的:首先逐個從上到下執行try塊中的java語句,如果沒有發生異常,則執行完try塊後跳過catch塊(不論有多少個catch都跳過)。如果try塊中某條語句存在異常,則跳到相對應的catch塊中(發生什麼異常,就跳到什麼catch里,如果沒有準確對應的,就跳到父類異常的catch中),執行完該catch塊中的語句,然後跳過其它的catch塊,接著往下走,明白了么?總之,try-catch只能處理一個異常,這就是為什麼後面通常跟finally,要有一個統一的出口。
如果還不明白,你就在環境下用一段代碼試試就好了,不要著急,隨便找兩個異常一試就OK!
比如:
try{
int b=25/0;
Thread.sleep(2000);
}
catch(ArithmeticException e){
System.out.println("除零錯誤!");
}
catch(InterruptedException e){
System.out.println("延時錯誤!");
}
上面這個例子就會在屏幕上顯示"除零錯誤!"四個字,因為眾所周知,任何數字不能除0,所以25/0是錯的,它拋出ArithmeticException(數學異常),則直接跳進第一個catch塊內,而沒有進入第二個塊,盡管Thread.sleep(2000);也有異常。

閱讀全文

與javatrycatch怎麼執行相關的資料

熱點內容
計算機程序文件名擴展名為 瀏覽:982
網路游戲推廣策劃案 瀏覽:609
替換所有文件內容的代碼 瀏覽:960
不是常用數據模型有哪些 瀏覽:426
aspcms版本號 瀏覽:835
安卓怎麼用數據流量下載軟體 瀏覽:553
大眾手動空調數據流通道號是多少 瀏覽:303
手機qq令牌 瀏覽:737
cg原畫上色教程 瀏覽:993
婚介服務中心app怎麼做 瀏覽:43
日本蘋果66g多少錢 瀏覽:93
個性的文件夾名稱 瀏覽:697
怎麼設置文件打開密碼 瀏覽:811
手機版qq客服代碼怎麼用 瀏覽:24
fme可以打開哪些文件 瀏覽:339
好看的qq密碼 瀏覽:293
安卓唯一標識有哪些 瀏覽:243
win10ime 瀏覽:271
手機號大數據保護停機是什麼意思 瀏覽:81
兩個蘋果手機怎麼隔空投送app 瀏覽:903

友情鏈接