2013-08-26 153 views
-1

以下是我的一段代碼:\如何從異常中獲取消息?

public void LoadProjectFile(String Filename) throws Exception 
{ 
    // m_Renderer.m_Project=new Project(); 
    refresh_project(); 
    m_Renderer.m_SelectedProjectPath = Filename; 

    try { 
     m_Renderer.m_Project.load_file(Filename); 

    } 
    catch (Exception e) 

    { 
     //Exception a = e.getMessage(); 
     String a= e.getMessage(); 

     throw new Exception(a); 
    } 

    //AppFuncs.m_GisProject=m_Renderer.m_Project; 

} 



     try 
     { 

      Map.this.mGLView.LoadProjectFile(AppFuncs.g_path); 
      Map.this.mGLView.requestRender(); 
    } 
     catch (Exception e) 
     { 
      br=1; 
      b=e.getMessage(); 
     } 

加載的項目文件拋出我在地圖類收到異常。 This exception contains message: Java.lang.exception: java.lang.exception: file not found.

我只想顯示"File not found"消息。所以我應該如何從異常中獲取此消息?

+0

看一看這個,它正是你要找的 http://stackoverflow.com/questions/9017820/exception-getmessage-output-without-class-name –

回答

0

捕獲所有類型的異常,而不是基地的異常:

try { 
    m_Renderer.m_Project.load_file(Filename); 

} 
catch (FileNotFoundException e) 
{ 
    String a= "File not found" 
    throw new Exception(a); 
} 
catch (SomeOhterException e){ 
    String a= "Some other message" 
    throw new Exception(a); 
} 
//at the end, but it shouldn't be necessary 
catch (Exception e){ 
    String a= "Something happend we don't know what" 
    throw new Exception(a); 
} 

不久:使用不同的不同的異常類顯示比使用異常消息正確的信息rahter。

+0

我已經捕獲這些異常在loadproject文件異常 –

+0

@MuneemHabib我不明白。你沒有在你提供的代碼片段中捕獲它。如果你在'm_Renderer.m_Project.load_file()'裏捕獲它們,並拋出異常,你不應該這樣做。 – Ari

0

只要趕上FileNotFoundException而不是Exception

例如:

try { 
     //whatever 
} catch (FileNotFoundException e) { 
     System.out.println("File not found"); 
} 
相關問題