[Java]try catch finally 例外資訊處理

try catch是專門在處理錯誤事件的,很多程式語言都有這樣子的例外處理方法,Java也不例外,對於新入門的可能會比較少遇到這類型的問題,不過是十分重要的一環。

當程式功能越來越多、越來越大時,try catch的使用可以增加除錯(bug)的速度,try catch也可以使用其特性來製做一些技巧性的功能或判斷,而當使用者在操作期間發現了例外或錯誤,如果丟出一堆程式碼大概會讓使用者不知所為,擷取這些例外或錯誤而丟出使用者容易理解的字串,也是try catch的功能之一。

try catch 用法

try裡的敍述句有可能會丟出例外資訊 ( Exception ) ,而丟出的例外資訊 ( Exception ) 型態就可以由catch來取得,做適當的處理。finally則是在try catch完成後會執行的動作,一般都是使用在關閉或則除物件等。

ps.catch取得例外需由小範圍而後大範圍,例如java.lang.NullPointException則需寫在Exception前面,因為NullPointException所能處理的範圍比Exception還小。

3.png
Read More

[Java]SiteMap Creater-簡介SiteMap.xml

大部份有寫blog的人應該都知道SiteMap是什麼東西,網站地圖,以前網站做SiteMap是讓使用者更方便找到資料,如今的SiteMap功能確是讓搜尋引擎更方便快速的取得資料。

What is SiteMap?

SiteMap對於一個網站來說有好有壞,好處就是可以直接提供資料給搜尋引擎,讓搜尋引擎更快速的來抓取資料,壞處呢?相對的資料也很容易被其它有心人事直接取走使用,所以在取捨上就需要好好考慮了,不過大部份的網站還是選擇提供SiteMap。

sitemap1.png

相關說明:wiki資料什麼是 Sitemap?

Read More

[Jsp技巧]看到錯誤碼?找到Exception位置呢?

剛開始學習jsp時,看到了Exception就一個頭二個大,因為好像跟一般Java出現錯誤的表示方式不一樣,Exception的訊息寫的錯誤行數,總跟jsp裡的行數不太一樣?這樣子就不好判斷Exception產生在那裡,進而修改了!

其實不然,在執行jsp網頁時web-server會把jsp檔先轉換成java檔,再由java檔編譯成class檔,所以要找出錯誤的地方就只需要找到java檔的所在,就可以了。

範例使用的環境是tomcat,Exception直接向網頁丟出,會看大概如下的畫面

errorcheck4.png
Read More

[Java]迴圈中斷及繼續

在上一章節裡提到了迴圈,這章節講要來講述如何中斷或者繼續下一步。

在一般的狀況下,只要跑完迴圈就可以結束這個迴圈的動作了,例如:1 到 50累加,只要到達結束點50就可以結束了,但如果想中突結束呢?是有幾個方法可以這麼做其中有二個是中斷,另一個是叫"繼續",還有另一個是中突出現錯誤Exception而跳出。以下一一來解釋這些方法:

1.迴圈中斷break

當執行迴圈時,合乎結束條件時,迴圈就算完成任務了,但如果中突有需要跳離時呢?這時候可以使用break這個關鍵字。

只需要在想要做中斷的地方輸入break ; 就會直接結束迴圈,並向下執行迴圈外的敘述句

例子:

        //迴圈裡會印出0,1,2,3,4,5,
        for(int i = 0 ; i < 10;i++)
        {
            System.out.print(i+",");
            if(i==5)//當i==5時就先中斷這個迴圈了
                break;
        }
        System.out.println("xxxxx");

答案:

0,1,2,3,4,5,xxxxx

Read More

[Java]迴圈

迴圈是在任何程式語言上都很常見的一種語法,主要在處理重覆的事情,例如:1加到55之類的,或著需重覆做n次的事件,而Java的迴圈一共分成三種方法,一種是for、一種是while另一種是do while迴圈,在什麼時候使用那一種迴圈並沒有一定,大概可分為for:基本型態的遞增減,while:物件下一個或上一個,do while:跟while一樣,只差是先執行而後判斷,以下是比較詳細的說明:

for

當需要某一個變數從A數到B數時,就很常利用for來執行

用法:

for(初始化變數;判斷跳出的條件;增值)

敘述句

其中初始變數、判斷句跟增值都不一定要寫在for後面,下面的範例就把幾種用法帶出來了

        int i = 0 ; 
        for(;i<5;i++)
            System.out.print(i+",");
        //答案:0,1,2,3,4,
        
        for(int x=0;x<3;x++)
            System.out.print(x+",");
        //答案:0,1,2,
        
        int y=0;//初始
        for(;;)
        {
            if(y>3)//判斷
                break;
            System.out.print(y++);
            y++;//繼續
        }
        //答案0,1,2
Read More