黑马程序员技术交流社区

标题: 异常问题 [打印本页]

作者: 李道福    时间: 2013-4-9 10:38
标题: 异常问题
本帖最后由 李道福 于 2013-4-9 14:02 编辑
  1. public class Test1{

  2.         public static void main(String[] args) throws Exception {     //为什么这里写成throws IOException 就不能通过编译?
  3.                
  4.                 byte[] buf=new byte[10];
  5.                 int n=System.in.read(buf);
  6.                 String str=new String(buf,0,n);
  7.                 System.out.println("str="+str);
  8.                
  9.         }

  10. }
复制代码
非运行时的异常和运行时的异常有什么区别?
作者: HM张勇    时间: 2013-4-9 10:58
非运行时的异常必须在函数上声明,并且一定要用try、catch进行接收和处理

运行时异常则不用再函数上声明。

如果你在函数上声明throws IOException的话,就一定要在函数中写try、catch来处理。

作者: 梁航斌    时间: 2013-4-9 12:36
没有导包,你加
  1. import java.io.*;
复制代码
就能通过编译了
还是贴贴代码吧
  1. import java.io.*;
  2. public class Test1{

  3.         public static void main(String[] args) throws IOException {     //为什么这里写成throws IOException 就不能通过编译?

  4.                 byte[] buf=new byte[10];
  5.                 int n=System.in.read(buf);
  6.                 String str=new String(buf,0,n);
  7.                 System.out.println("str="+str);
  8.                

  9.         }

  10. }
复制代码
在上张图

作者: HM王琦    时间: 2013-4-9 12:52
java异常分为运行时异常和编译时异常,
运行时异常,是程序在运行过程中中,运行由于程序本身的缺陷,导致程序无法正常运行。运行时异常无法恢复,程序不用处理此类异常,一般的做法是产生此类异常时,根据错误信息找到错误代码,然后进行代码修复。
编译时异常,是java编译器分析的异常,方法调用者可以通过代码的检测与处理可以进行恢复。,这种异常时必须处理的,否则就会出现编译错误。

throw关键字用于方法体重,抛出异常对象。
throws用于方法上用于声明此方法有异常
作者: 影响力147753321    时间: 2013-4-9 13:43
运行时异常都是RuntimeException类及其子类异常,如NullPointerException、IndexOutOfBoundsException等,这些异常是不检查异常,程序中可以选择捕获处理,也可以不处理。这些异常一般是由程序逻辑错误引起的,程序应该从逻辑角度尽可能避免这类异常的发生。

    非运行时异常是RuntimeException以外的异常,类型上都属于Exception类及其子类。从程序语法角度讲是必须进行处理的异常,如果不处理,程序就不能编译通过。如IOException、SQLException等以及用户自定义的Exception异常,一般情况下不自定义检查异常。
作者: 李道福    时间: 2013-4-9 14:02
梁航斌 发表于 2013-4-9 12:36
没有导包,你加就能通过编译了
还是贴贴代码吧在上张图

多谢……
作者: 梁航斌    时间: 2013-4-9 14:04
李道福 发表于 2013-4-9 14:02
多谢……

客气,我也在学基础




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2