一、請閱讀並運行AboutException.java示例,而後經過後面的幾頁PPT瞭解Java中實現異常處理的基礎知識。java
答:1.拋出異常程序員
當程序發生異常時,產生一個異常事件,生成一個異常對象,並把它提交給運行系統,再由運行系統尋找相應的代碼來處理異常。這個過程稱爲拋出(throw)一個異常。一個異常對象能夠由Java虛擬機生成,也能夠由運行的方法生成。異常對象中包含了異常事件類型、程序運行狀態等必要的信息。對象
2.捕獲異常blog
異常拋出後,運行時系統從生成對象的代碼開始,沿方法的調用棧逐層回溯查找,直到包含相應處理的方法,並把異常對象交給該方法爲止,這個過程稱爲捕獲(catch)一個異常。事件
簡單地說,發現異常的代碼能夠「拋出」一個異常,運行系統「捕獲」該異常,交由程序員編寫的相應代碼進行異常處理。input
二、 辨析:finally語句塊必定會執行嗎?虛擬機
答:否,只有與 finally 對應的 try 語句塊獲得執行的狀況下finally 語句塊纔會執行,或是當執行try語句時終止虛擬機命令也會不執行finally語句。it
三、編寫一個程序,此程序在運行時要求用戶輸入一個 整數,表明某門課的考試成績,程序接着給出「不及格」、「及格」、「中」、「良」、「優」的結論。io
要求程序必須具有足夠的健壯性,無論用戶輸入什 麼樣的內容,都不會崩潰。class
源代碼:import javax.swing.JOptionPane;
public class Score {
public static void main(String args[])
{
String output = "";
int a =1;
while(a==1)
{
String input = JOptionPane.showInputDialog("請輸入成績(0`100):");
try
{
int score = Integer.parseInt(input);
if(score <0||score>100)
{
JOptionPane.showMessageDialog(null,"錯誤請重輸");
a=1;
}
else if(score<60)
{
output = "不及格";
a=0;
}
else if(score<=70)
{
output ="及格";
a=0;
}
else if(score<=80)
{
output = "中";
a=0;
}
else if(score<=90)
{
output = "良";
a=0;
}
else if(score<=100)
{
output ="優";
a=0;
}
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null,"errors occur!請輸入整數");
a=1;
}
}
JOptionPane.showMessageDialog(null,output);
System.exit(0);
}
}
運行截圖: