JAVA中Thread.sleep(1000);提示有错误,但是加上try........catch就不报错了,什么原因,作用是什么?
因为try...catch 的作用是测试代码中的错误。
当程序运行过程中发生错误时,就会“ 抛出异常',抛出异常比终止程序要灵活得多,这是因为可以提供一个“ 捕获” 异常的处理器 (handler) 对异常情况进行处理。
如果没有提供处理器,程序就会终止,并在控制台上打印出一条信息, 其中给出了异常的类型。可能在前面已经看到过一些异常报告, 例如, 偶然使用了 null 引用或者数组越界等。
异常有两种类型: 未检查异常和已检查异常。 对于已检查异常, 编译器将会检查是否提供了处理器。 然而,有很多常见的异常, 例如,访问 null 引用, 都属于未检查异常。
编译器不会査看是否为这些错误提供了处理器。毕竟,应该精心地编写代码来避免这些错误的发生, 而不要将精力花在编写异常处理器上。
扩展资料
java中异常的捕获及处理
三种类型的异常:
检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略。
运行时异常: 运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略。
错误: 错误不是异常,而是脱离程序员控制的问题。错误在代码中通常被忽略。例如,当栈溢出时,一个错误就发生了,它们在编译也检查不到的。
异常的根接口Throwable,其下有2个子接口,Error和Exception。
Error:指的是JVM错误,这时的程序并没有执行,无法处理;Exception:指的是程序运行中产生的异常,用户可以使用处理格式处理。
public static void sleep (long millis) thorows InterruptedException
有抛出异常;
因为是静态方法 所以你可以直接使用thread.sleep();
但是还是需要捕获
如果执行try块里的业务逻辑代码时候出现了异常,系统自动回生成一个异常对象,会寻找能处理异常对象的catch块,如果找到合适的catch块把该异常对象交给catch块处理.如果java运行环境找不到不会异常的catch块,则运行终止
2012-07-07