how2j.cn

异常定义:
导致程序的正常流程被中断的事件,叫做异常

本视频是解读性视频,所以希望您已经看过了本知识点的内容,并且编写了相应的代码之后,带着疑问来观看,这样收获才多。 不建议一开始就观看视频



5分43秒
本视频采用html5方式播放,如无法正常播放,请将浏览器升级至最新版本,推荐火狐,chrome,360浏览器 如果装有迅雷,播放视频呈现直接下载状态,请调整 迅雷系统设置-基本设置-启动-监视全部浏览器 (去掉这个选项)



步骤 1 : 文件不存在异常   
步骤 2 : 练习-异常   
步骤 3 : 答案-异常   

步骤 1 :

文件不存在异常

比如要打开d盘的LOL.exe文件,这个文件是有可能不存在的
Java中通过 new FileInputStream(f) 试图打开某文件,就有可能抛出文件不存在异常FileNotFoundException
如果不处理该异常,就会有编译错误
处理办法参见 异常处理
package exception; import java.io.File; import java.io.FileInputStream; public class TestException { public static void main(String[] args) { File f= new File("d:/LOL.exe"); //试图打开文件LOL.exe,会抛出FileNotFoundException,如果不处理该异常,就会有编译错误 new FileInputStream(f); } }
package exception;
 
import java.io.File;
import java.io.FileInputStream;
 
public class TestException {
 
    public static void main(String[] args) {
         
        File f= new File("d:/LOL.exe");
         
        //试图打开文件LOL.exe,会抛出FileNotFoundException,如果不处理该异常,就会有编译错误
        new FileInputStream(f);
         
    }
}
步骤 2 :

练习-异常

Or  姿势不对,事倍功半! 点击查看做练习的正确姿势
罗列出学习到目前为止,都接触过了哪些异常,分别在什么情况下会出现
步骤 3 :

答案-异常

在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
本视频是解读性视频,所以希望您已经看过了本答案的内容,带着疑问来观看,这样收获才多。 不建议一开始就观看视频

4分2秒 本视频采用html5方式播放,如无法正常播放,请将浏览器升级至最新版本,推荐火狐,chrome,360浏览器 如果装有迅雷,播放视频呈现直接下载状态,请调整 迅雷系统设置-基本设置-启动-监视全部浏览器 (去掉这个选项)


ParseException 解析异常,日期字符串转换为日期对象的时候,有可能抛出的异常

OutOfIndexException 数组下标越界异常
OutOfMemoryError 内存不足
ClassCastException 类型转换异常
ArithmaticException 除数为零
NullPointerException 空指针异常



问答区域    
2017-07-20 文件存在也出编译错误了
秩序教长



打开D盘一个存在的文件,时间.txt,然后也报错了,谢站长
package exception;
  
import java.io.File;
import java.io.FileInputStream;
  
public class TestException {
  
    public static void main(String[] args) {
          
        File f= new File("d:/时间.txt");
          
        //试图打开文件LOL.exe,会抛出FileNotFoundException,如果不处理该异常,就会有编译错误
        new FileInputStream(f);
          
    }
}

							


5 个答案

mdls 答案时间:2017-12-10
异常有编译期异常和运行时异常 文件找不到的异常是编译期异常,需要主动捕获一下 类空指针异常就是编译期异常,不需要手动捕获

小程序员 答案时间:2017-11-08
我的观点是,这是一种异常处理机制,有没有它都得trycatch一下,属于一般异常,需要手动处理,不然在编译时就会报错

wenhu 答案时间:2017-09-17
编译错误并不是代表当次执行中异常真的存在,而是编译器看你知不知道有可能存在这个异常,而且有没有做好相应的应对措施,catch或者继续throw。比如某一次要打开的文件不存在了,而你无法向编译器保证一定不出现这种情况,所以你要向它证明,即便文件不在,我也能处理这种异常(虽然可能只是告诉用户文件不存在这个事实,但好歹也是种处理,你不能压根不提或者撒手不管)。

how2j 答案时间:2017-07-25
故意这样做的。。。。就是为了表示: //试图打开文件LOL.exe,会抛出FileNotFoundException,如果不处理该异常,就会有编译错误

javalover 答案时间:2017-07-24
需要用try-catch 包围一下FileInputStream(f);




答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2017-06-12 sdfdsf
qwqw
fdsfdsf s








答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到




2016-08-24 强迫症




提问之前请登陆
关于 JAVA 中级-异常处理-什么是异常 的提问

尽量提供截图代码异常信息,有助于分析和解决问题。 也可进本站QQ群交流: 661682521
站长会在每个工作日早上尽量回答提问(如果有漏掉没有回答的,请进群提醒一下)
提问尽量提供完整的代码,环境描述,越是有利于问题的重现,您的问题越能更快得到解答。
对教程中代码有疑问,请提供是哪个步骤,哪一行有疑问,这样便于快速定位问题,提高问题得到解答的速度
站长是玻璃心,提问的时候请语气温柔些 kiss~
截止2017-5-19日累计提问 1638个,站长回答了 1546个
截止2017-8-15日累计提问 2788个,站长回答了 2544个

上传截图