1、一般情况下,我们只对"被检查型"异常在程序中进行抛出或者处理?2、但是,当我们写一个程序,当其发生"运行时异常"或者"系统级错误"的时候,我们怎样处理?3、JAVA在对上述问题处理的时候,一般是在控制台显示错误信息,但是我希望可以弹出一个消息框,告诉用户发生了什么,并且安全的退出应用程序.该怎么做?

解决方案 »

  1.   

    1、可以说是这样
    2、运行时异常可以不捕获,系统级错误不是异常更没法捕获
    3、你说的是C/S架构的软件吧,安全的退出应用程序;
    如果是B/S,在j2ee中,不符合你的要求时,ModelAndView mav;mav.setMessage("你想提示的消息");return;
      

  2.   


    try{
       ...
    }catch(Throwable e){
       ...处理异常
       System.exit(-1);
    }
      

  3.   

       运行时异常的原因通常是由于执行了错误的操作,使得程序异常终止,可以试试通过扩展RuntiomeException类来达到自己的目的.
      

  4.   

    如果不抛出RuntimeException,那么扩展RuntimeException类的有什么用呢?它会被自动执行?应该是在它被抛出的
    时候被执行吧?有看JAVACORE这本书,我看到里面有一个处理"NullPointerException"的例子,他好像是通过try{}catch(){}来处理的。
    那是不是说,运行时异常不需要捕获,但是是可以捕获,或者抛出,要不何必扩展RuntimeException?
      

  5.   

    直接用TRY{}CATCH{}FINALLY{}就行了不过你要知道会发生什么,那样才好向你的用户交待,不然就只能说出错了,到于出了什么错,不能给他们说.不过软件就是不能给他们说,只用于自己测试!
      

  6.   

    异常都可以通过try catch捕获
    不过系统级错误我们无能为力。
    想弹个框提示用户的话:javax.swing.jOptionPane.showMessageDialog 
    好像是这个方法 好长时间没写swing了 有点忘了。
      

  7.   

    自己写了个程序,捕捉了一下“内存泄漏”错误。感觉是可以通过,try{}catch{}来处理的。那书本的意思应该是说“被检查型的异常”需要强制声明,而其他异常不强制处理,可以又JAVA虚拟机来处理,也可以自己处理吧?通过try{}catch{}来处理异常过多的话,似乎会影响程序的运行速度。慎用!谢谢大家的帮助,谢谢。另贴自己的测试代码如下:/**
    @author hlayy
    @version 0.1
    */import java.util.*;
    public class MemoryNotEnough
    {
    public static void main(String [] args)
    {
    String str = new String("str"); String str2 = new String("Str2"); String str3 = new String("Str3"); try
    {
    for(int i = 0 ; i<100000;i++)
    {
    str = str + str2;
    str2 = str2 + str;
    str3 = str3 + str2;
    }
    } catch(OutOfMemoryError o)
    {
    System.out.println("内存泄漏错误!");
    }     }}