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ù)時(shí)間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      如何在Java中拋出異常

      這篇文章給大家介紹如何在Java中拋出異常,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

      成都一家集口碑和實(shí)力的網(wǎng)站建設(shè)服務(wù)商,擁有專業(yè)的企業(yè)建站團(tuán)隊(duì)和靠譜的建站技術(shù),十載企業(yè)及個(gè)人網(wǎng)站建設(shè)經(jīng)驗(yàn) ,為成都超過千家客戶提供網(wǎng)頁設(shè)計(jì)制作,網(wǎng)站開發(fā),企業(yè)網(wǎng)站制作建設(shè)等服務(wù),包括成都營銷型網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),同時(shí)也為不同行業(yè)的客戶提供做網(wǎng)站、網(wǎng)站設(shè)計(jì)的服務(wù),包括成都電商型網(wǎng)站制作建設(shè),裝修行業(yè)網(wǎng)站制作建設(shè),傳統(tǒng)機(jī)械行業(yè)網(wǎng)站建設(shè),傳統(tǒng)農(nóng)業(yè)行業(yè)網(wǎng)站制作建設(shè)。在成都做網(wǎng)站,選網(wǎng)站制作建設(shè)服務(wù)商就選成都創(chuàng)新互聯(lián)公司

      Java的特點(diǎn)有哪些

      Java的特點(diǎn)有哪些 1.Java語言作為靜態(tài)面向?qū)ο缶幊陶Z言的代表,實(shí)現(xiàn)了面向?qū)ο罄碚摚试S程序員以優(yōu)雅的思維方式進(jìn)行復(fù)雜的編程。 2.Java具有簡單性、面向?qū)ο蟆⒎植际健踩浴⑵脚_獨(dú)立與可移植性、動態(tài)性等特點(diǎn)。 3.使用Java可以編寫桌面應(yīng)用程序、Web應(yīng)用程序、分布式系統(tǒng)和嵌入式系統(tǒng)應(yīng)用程序等。

      異常處理常用方法:

      常用的異常處理方法有:

      • 一、try()catch() 語句

      • 二、throw / throws 語句

      • 三、自定義異常類

      用途:

      眾所周知,當(dāng)程序運(yùn)行過程中,如果遇到了錯(cuò)誤(比如數(shù)組下標(biāo)越界,空指針等)程序就會自動終止,但這種錯(cuò)誤一般是偶然的,可能是用戶輸入不呵呵程序編寫者的意圖導(dǎo)致,而不是程序本身問題,這是我們要做的,是讓操作者知道發(fā)生了什么事情,而不是直截了當(dāng)?shù)慕Y(jié)束程序,這時(shí)我們就用到了異常處理(語句發(fā)生錯(cuò)誤時(shí),只拋出異常,而不結(jié)束程序)。

      這里一源碼為例 詳細(xì)介紹一下:

      一、try()catch() 語句:

      原理剖析:

      將可能發(fā)生異常的語句放在 tr() 中,運(yùn)行到try這一行時(shí),如果無異常,則正常執(zhí)行 try() 中語句,執(zhí)行完 try() 內(nèi)語句之后,程序自動跳過 catch() 語句,去執(zhí)行 catch() 之后的語句。

      反之,如果在執(zhí)行 try() 內(nèi)語句時(shí),出現(xiàn)異常情況,則執(zhí)行跳轉(zhuǎn)到catch()語句中,進(jìn)行異常處理,一處處以之后不再回到try的()內(nèi),而是結(jié)束try()catch()內(nèi)的所有操作,去運(yùn)行后面的catch語句后面的語句。

      舉個(gè)例子就明白了:

      public class ClassText {
          public static void main(String[] args) {
              int textArray[] = new int[3];//用于測試數(shù)組越界異常的數(shù)組
              int j;//用來使數(shù)組月結(jié)的下標(biāo)
              try {
                  for ( j = 0; j < (textArray.length + 1); j++) {//有+1可見 該測試一定越界
                      textArray[j] = (int) Math.random()*10 ;
                  }
              } catch (Exception e) {
                  // TODO: handle exception
                  e.printStackTrace();
              }
              System.out.println("但是上面拋出異常后\n程序并沒有直接結(jié)束\n"
                      + "而是跳出try()catch()語句\n正常執(zhí)行本條輸出語句");
          }
      }

      輸出如下:

      可以看到,發(fā)生異常后依然執(zhí)行了后面的輸出語句。

      如何在Java中拋出異常

      二、throw / throws 語句

      很多出初學(xué)者一直把throw / throws 語句,看作兩種不同的異常處理方法,其實(shí)他們可以看作一個(gè)整體,throw語句可以看作異常的處理語句,而throws我們則可以將其類比為‘extends' 它的主要作用是聲明該方法(體內(nèi)存在throw語句的方法,需要throws或者說我們可以看作需要‘繼承/鏈接',該異常類型的原型),舉個(gè)例子大家就明白了:

      private static void textThrow_Throws(int radius) throws Exception {
          if ( radius < 0 ) {//如果半徑小于0 則不符合常理進(jìn)行異常處理
              throw new Exception();
          }
      }

      這樣一來throw/throws 的用法就顯而易見了。

      但是在寫完throw/throws 語句后,異常處理并沒有結(jié)束,因?yàn)檫@里只是簡單聲明了,我的這個(gè)成員方法中的可能會拋出異常,并沒有寫具體該如何處理這個(gè)異常,所以這是在主函數(shù)中,就要用try()catch()將他們包圍。描述好具體的處理異常方法:完整測試代碼如下:

      public class ClassText {
          public static void main(String[] args) {
              int radius ;//定義一個(gè)叫做搬進(jìn)的變量作為測試
              radius = -5;//常理可知半徑使正數(shù)
              try {
                  textThrow_Throws(radius);
              } catch (Exception e) {
                  // TODO Auto-generated catch block
                  e.printStackTrace();
              }
              System.out.println("程序正常結(jié)束~");
          }
          private static void textThrow_Throws(int radius) throws Exception {
              if ( radius < 0 ) {//如果半徑小于0 則不符合常理進(jìn)行異常處理
                  throw new Exception();
              }
          }
      }

      我們再看看輸出范例:

      如何在Java中拋出異常

      三、自定義異常類

      自定義異常類是逃不開,也是新手接觸最少的,其實(shí)它的基本使用方法還是很簡單的,自定義異常處理類,只包括兩部分:(1)、類的構(gòu)造方法,構(gòu)造方法的建立則非常簡單,其實(shí)只要繼承父類(比如 Exception類 )的構(gòu)造方法即可。(2)、重寫toString()函數(shù),這是最重要的一點(diǎn),再toString函數(shù)中,描述具體發(fā)生了什么錯(cuò)誤導(dǎo)致了異常的拋出。這樣一來用戶才知道究竟是發(fā)生了什么錯(cuò)誤

      這里結(jié)合throw/throws 舉個(gè)例子就很好明白了:

      1.首先自定義一個(gè)異常類:

      public class ArrayIndexException extends Exception{
          public ArrayIndexException() {
              // TODO Auto-generated constructor stub
              super();
          }
          @Override
          public String toString() {
              // TODO Auto-generated method stub
              return"程序發(fā)生了越界異常! 請檢查下標(biāo)變化!";
          }
      }

      如上所示就是一個(gè)最基本的自定義異常類 ,它繼承了Exception 并且重寫了構(gòu)造方法以及toString方法

      2.現(xiàn)在我們嘗試再主函數(shù)中調(diào)用它

      public class ClassText {
          public static void main(String[] args) {
              int textArray[] = new int[3];//用于測試數(shù)組越界異常的數(shù)組
              try {
                  textSetArray(textArray);//調(diào)用下方數(shù)組賦值方法
              } catch (ArrayIndexException e) {
                  // TODO: handle exception
                  e.printStackTrace();//如果發(fā)生了異常 則拋出自定義數(shù)組越界異常
              }
              System.out.println("go on !");
              for(int j = 0 ; j < textArray.length ; j++ )
                  System.out.print(textArray[j] + "\t");//再越界之前的數(shù)成功賦值
          }
          private static void textSetArray(int[] textArray) throws ArrayIndexException{
              for ( int j = 0; j < (textArray.length + 1); j++) {//有+1可見 該測試一定越界
                  textArray[j] = 5 ;//給數(shù)組原屬賦值
              }
          }
      }

      如上所示,如果發(fā)生了異常,這才catch()語句中聲稱自定義的異常對象,并輸出具體信息:

      如何在Java中拋出異常

      關(guān)于如何在Java中拋出異常就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。


      分享名稱:如何在Java中拋出異常
      當(dāng)前網(wǎng)址:http://www.ef60e0e.cn/article/jijhip.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>

        拜城县| 乌拉特前旗| 台江县| 隆昌县| 西青区| 本溪市| 南乐县| 巴塘县| 凉山| 富蕴县| 广宗县| 泰和县| 庆安县| 永德县| 静宁县| 泸西县| 诸城市| 贡嘎县| 青龙| 永德县| 綦江县| 黔西县| 任丘市| 康定县| 会昌县| 浙江省| 郯城县| 大竹县| 江口县| 师宗县| 昔阳县| 苏尼特左旗| 远安县| 兰考县| 枣阳市| 磐安县| 平远县| 莎车县| 嘉禾县| 新乡县| 涿鹿县|