程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程解疑 >> getmessage tostring-java中的getMessage()和toString()有啥區別?見下代碼

getmessage tostring-java中的getMessage()和toString()有啥區別?見下代碼

編輯:編程解疑
java中的getMessage()和toString()有啥區別?見下代碼
class ZiDingYiChang 
    {
        public static void main(String[] args) 
        {
                  Demo a =  new Demo();
                 try
                 {
                            int b=a.div(4,-2);
                         System.out.println(b);

                       }
                    catch (FuShuException e)
                 {
                            System.out.println(e.toString());//為什麼說這裡的toString()方法自動調用下面的getMessage()方法?

                   }

                 System.out.println("Hello World!");
              }
}

class FuShuException extends Exception
  {
      private String str;
      FuShuException(String str)
         {
         this.str=str;
        }

         public String getMessage()
               {
              return str;
               }
    }




 class Demo
  {
        int div(int x,int y) throws FuShuException
          {
          if (y<0)
            {
                 throw new FuShuException("除數為負數,運算失敗"); 
             }
      return x/y;
   }
}

最佳回答:


你沒有重寫toString方法,因此這裡調用的toString方法是父類的方法,即Throwable類的方法,查看api文檔可知, Throwable的toString方法調用了當前對象的 getLocalizedMessage方法,這個方法也是 Throwable類的方法, 對於不重寫此方法的子類,默認實現返回與 getMessage() 相同的結果。總之,toString方法調用了 getMessage方法,因此返回與 getMessage方法一樣的內容。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved