我们在编程中会遇到一些异常,可以在函数头用throws进行抛出,也可以在函数中用try{}catch(){}进行,这两者之间具体的区别是什么?
例如:(控制台程序)要求从键盘里面输入一个int数据,我们用的是s.nextInt()  (s为Scanner的实例) ,键盘可能输入的不是int数据,这时候肯定是一个异常,要求程序肯定是要一直运行到结束的,这时候该怎么班?用哪个?必须使用try  catch 吗 ?javaExceptionjava异常

解决方案 »

  1.   

    在方法声明throws表示方法内可能要抛出异常,这时候你可以手动在方法内抛出异常(可以是自己定义的),比如你要认为console输入String是错误的你可以对String parse int 异常进行抛出
    然后在外面 或者方法里面进行处理 
    try {
    System.out.println(Integer.parseInt("abc"));
    } catch (NumberFormatException e) {
    }
    System.out.println("跳过不处理");
    }
    这样就不会让用户看见错误了!
      

  2.   

    ①throws进行抛出,表示该方法不对此异常进行处理,由调用者处理。
    ②而try catch是对异常进行捕获。捕获之后对异常进行一系列操作,使之没有异常;或者在捕获异常处理之后,再定义异常将其抛出。
      

  3.   

    +1
    对于运行时异常,不会强制你去捕获它,直到jvm发现它,自动抛出去
    比如你说的NumberFormatException,这种异常你可以throws抛出去,让调用者处理,(在main方法里就直接终止程序运行了),或者使用try catch抓住它,在catch块里处理成你想要的结果
      

  4.   

    try catch相当于对if else进行补充
      

  5.   

    ①throws进行抛出,表示该方法不对此异常进行处理,由调用者处理。
    ②而try catch是对异常进行捕获。捕获之后对异常进行一系列操作,使之没有异常;或者在捕获异常处理之后,再定义异常将其抛出。说的有道理啊