1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      java中異常拋出的代碼 java中拋出異常是什么意思

      java自定義異常拋出

      分類: 電腦/網(wǎng)絡(luò) 程序設(shè)計 其他編程語言

      延平網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)公司于2013年創(chuàng)立到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司

      問題描述:

      import java.awt.*;

      import java.awt.event.*;

      import javax.swing.*;

      自定義異常類

      class NumException extends Exception{

      public String toString(){

      return "輸入的值太小";

      }

      public String shuru(){

      return "請輸入數(shù)字";

      }

      }

      class jisuanqi extends JFrame implements ActionListener,ItemListener{

      JRadioButton rz;

      JRadioButton rm;

      ButtonGroup bg;

      JTextField txt;

      JButton btnj;

      String msg;

      jisuanqi(){

      super("計算器");

      rz=new JRadioButton("周長");

      rm=new JRadioButton("面積");

      bg=new ButtonGroup();

      txt=new JTextField();

      btnj=new JButton("計算");

      msg="";

      this.getContentPane().setLayout(new GridLayout(2,2));

      bg.add(rz);

      bg.add(rm);

      this.getContentPane().add(rz);

      this.getContentPane().add(rm);

      this.getContentPane().add(txt);

      this.getContentPane().add(btnj);

      this.setSize(200,200);

      rz.addItemListener(this);

      rm.addItemListener(this);

      btnj.addActionListener(this);

      }

      實現(xiàn)接口

      public void actionPerformed(ActionEvent e) throws NumException{聲明異常

      if (Double.parseDouble(txt.getText())=0){

      throw new NumException();拋出異常

      }

      if (msg.equals("周長")){

      txt.setText(""+(3.14*2*Double.parseDouble(txt.getText())));

      }

      if (msg.equals("面積")){

      txt.setText(""+3.14*(Double.parseDouble(txt.getText())*Double.parseDouble(txt.getText())));

      }

      }

      實現(xiàn)接口

      public void itemStateChanged(ItemEvent e){

      if (e.getSource()==rz){

      msg="周長";

      }

      if (e.getSource()==rm){

      msg="面積";

      }

      }

      public static void main(String args[]){

      try{

      jisuanqi js=new jisuanqi();

      js.setVisible(true);

      }

      catch(NumException ex){

      System.out.println(ex);

      }

      }

      }

      編譯時出現(xiàn):

      C:\Documents and Settings\Administrator\桌面\新建文件夾\jisaunqi.java:45: jisuanqi 中的 actionPerformed(java.awt.event.ActionEvent) 無法實現(xiàn) java.awt.event.ActionListener 中的 actionPerformed(java.awt.event.ActionEvent);被覆蓋的方法不拋出 NumException

      解析:

      這段代碼有問題:

      實現(xiàn)接口

      public void actionPerformed(ActionEvent e) throws NumException{聲明異常

      public void actionPerformed(ActionEvent e)不應(yīng)該拋出異常, ActionListener接口函數(shù)沒有異常拋出

      一種可能的解決方法是把判斷移到另外一個函數(shù)中,然后拋出異常,在actionPerformed中捕獲或者在外面捕獲

      java提供給程序主動拋出異常的語句

      直接throws Exception 寫在你的方法或者類名后

      或者用try catch

      在 Java 應(yīng)用程序中,異常處理機制為:拋出異常,捕捉異常。

      拋出異常:當一個方法出現(xiàn)錯誤引發(fā)異常時,方法創(chuàng)建異常對象并交付運行時系統(tǒng),異常對象中包含了異常類型和異常出現(xiàn)時的程序狀態(tài)等異常信息。運行時系統(tǒng)負責(zé)尋找處置異常的代碼并執(zhí)行。

      捕獲異常:在方法拋出異常之后,運行時系統(tǒng)將轉(zhuǎn)為尋找合適的異常處理器(exception handler)。潛在的異常處理器是異常發(fā)生時依次存留在調(diào)用棧中的方法的集合。當異常處理器所能處理的異常類型與方法拋出的異常類型相符時,即為合適 的異常處理器。運行時系統(tǒng)從發(fā)生異常的方法開始,依次回查調(diào)用棧中的方法,直至找到含有合適異常處理器的方法并執(zhí)行。當運行時系統(tǒng)遍歷調(diào)用棧而未找到合適 的異常處理器,則運行時系統(tǒng)終止。同時,意味著Java程序的終止。

      對于運行時異常、錯誤或可查異常,Java技術(shù)所要求的異常處理方式有所不同。

      由于運行時異常的不可查性,為了更合理、更容易地實現(xiàn)應(yīng)用程序,Java規(guī)定,運行時異常將由Java運行時系統(tǒng)自動拋出,允許應(yīng)用程序忽略運行時異常。

      對于方法運行中可能出現(xiàn)的Error,當運行方法不欲捕捉時,Java允許該方法不做任何拋出聲明。因為,大多數(shù)Error異常屬于永遠不能被允許發(fā)生的狀況,也屬于合理的應(yīng)用程序不該捕捉的異常。

      java中異常拋出后代碼還會繼續(xù)執(zhí)行嗎

      一般如果出現(xiàn)非人為異常,即非通過代碼throw的方式拋出異常,同時未通過try-catch捕捉。則當前代碼不會繼續(xù)執(zhí)行,而是向上拋出異常,即返回調(diào)用當前代碼的位置。如果該位置未對異常進行處理,則繼續(xù)向上拋出。

      通過try-catch捕捉異常,即異常代碼在try中,可以在catch中進行異常處理

      try{

      ...

      //代碼,產(chǎn)生異常

      }catch(Exception?e){//e是異常類型,一般根父類為Exception類

      ...

      //進行產(chǎn)生異常后的處理

      }finally{

      ...

      //無論如何都會執(zhí)行的代碼

      }

      ...

      //如果catch中沒有繼續(xù)throw異常以及沒有產(chǎn)生新異常,則繼續(xù)執(zhí)行的代碼

      如果想要代碼繼續(xù)執(zhí)行,可以在catch中不繼續(xù)拋出異常,則代碼將執(zhí)行catch之后的代碼(如果有finally,則先執(zhí)行finally的代碼)。如果想要在產(chǎn)生異常之后仍需要執(zhí)行一部分代碼,則可以將該部分代碼放在finally中。


      分享題目:java中異常拋出的代碼 java中拋出異常是什么意思
      網(wǎng)站路徑:http://www.ef60e0e.cn/article/docpcsh.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        扬州市| 沛县| 乌拉特前旗| 义乌市| 定边县| 延长县| 南昌县| 新蔡县| 文化| 突泉县| 闽侯县| 扎赉特旗| 二连浩特市| 永和县| 皮山县| 雷波县| 宁国市| 大姚县| 安阳县| 从化市| 达拉特旗| 上饶县| 阳春市| 云龙县| 萝北县| 师宗县| 星子县| 田阳县| 延长县| 资阳市| 浑源县| 青海省| 柳州市| 石楼县| 武山县| 宜君县| 稻城县| 天等县| 黔东| 于都县| 沙湾县|