一、什么包需要导入,什么包不需要导入
1.java.lang包的内容是自动导入的,不需要手动导入,其它必须手动导入。
2.java.io.OutputStreamWrite已经是完整的类,无需再导入,而printWrite这个类,并不是调用完整的类名,则需要import导入。(如果包的完整路径写出了则不需要import导入?)
二、异常处理
总的throwable包括error错误+exception异常,error是编译错误+系统错误如死锁,exception包括runtimeexception+非runtimeexception,按顺序分别为不受检查异常+受检查异常。受检查异常解决办法有2种,throw到上层+try catch处理。
throw和throws的用法区别:
①当一个方法产生一个它不处理的异常时,那么就需要在该方法的头部声明这个异常,以便将该异常传递到方法的外部进行处理。可以使用 throws 关键字在方法的头部声明一个异常,其具体格式如下:
返回类型 方法名(参数) throws Exception 1,Exception2,…{…}然后在外部调用这个方法时使用catch语句捕获异常。
②throw 语句用来直接拋出一个异常,后接一个可拋出的异常类对象,其语法格式如下:
throw ExceptionObject;当 throw 语句执行时,它后面的语句将不执行,此时程序转向调用者程序,寻找与之相匹配的 catch 语句,执行相应的异常处理程序。如果没有找到相匹配的 catch 语句,则再转向上一层的调用程序。这样逐层向上,直到最外层的异常处理程序终止程序并打印出调用栈情况。
总之,
throws在方法头部声明异常,下面程序继续运行,异常由调用方法者处理。
throw方法是抛出异常,下面程序无法运行,此时程序转向调用者程序,寻找对应的catch语句,如果找不到,再转向上一级调用程序,直到异常处理程序被执行。