首页 > 代码库 > java中的报错机制
java中的报错机制
异常:Exception,程序运行过程中因为一些原因,使得程序无法运行下去注意:在程序能够运行起来的情况,不是程序编译通不过举例:读文件,点击一个按钮,文件不存在;访问数据库服务器,数据库服务器停电了(1)异常的出现由于运行中遇到预想不到的情况(2)异常的性质1)出现异常,程序全部终止,不运行后面的代码2)当出现异常时,系统会将异常封装在一个类的对象中,通知系统终止(抛出异常)。如果任由软件出现异常,软件将非常不稳定,质量很低(3)异常如何处理?1)用try将可能出现异常的代码包围起来2)将出现异常之后的处理代码用catch包围起来,放在try的后面原理:系统运行try中的代码,如果没有异常,将不会运行catch中的代码;如果出现异常,将略过try中剩余的代码,转而执行catch中的代码,catch中代码执行完毕之后,再执行软件剩余的代码注意:一个try后面可以接1个或多个catch,catch中的异常类型不同,捕捉不同的异常,catch中如果写catch(Exception e)则捕捉所有异常还有一个finally,用在catch后面,可用可不用,最多只能用一个finally中,保存不管是否出现异常,一定要执行的代码举例:打开一个文件,读文件,关闭文件连接在读文件过程中不管是否出现异常,关闭文件的工作一定要做finally并不是可有可无的!finally中的代码,只要整个软件还在运行,不管当前作用域是否结束,都会执行一次。如果不将代码放在finally中,就不会有这样的效果。异常的概念异常的出现异常的处理try-catch-finallytry只有1个,catch1个以上,finally最多1个------异常的其他应用(1)通过异常改变程序行为举例:输入一个数,显示该数平方。但是,如果输入格式不是数字,将反复出现输入框,直到输入正确为止。(2)通过自定义异常来封装程序错误信息举例:编写一个函数,输入一个年龄,0-100之间,返回年龄给主函数。否则返回“范围错误”给主函数。一般情况下,函数中如果有throw标记,说明它可能会抛出异常。此时,函数定义上应该加上throws标记
//异常的出现:输入一个数,显示该数的平方import javax.swing.*;class Exception1{ public static void main(String[] args){ String str = JOptionPane.showInputDialog("输入"); int n = Integer.parseInt(str); int r = n * n; System.out.println("结果是:" + r); }}
//异常的出现:输入一个数,显示该数的平方import javax.swing.*;class Exception1{ public static void main(String[] args){ int n=0; try{ String str = JOptionPane.showInputDialog("输入"); n = Integer.parseInt(str); System.out.println("asdfjsadf"); }catch(Exception e){ System.out.println("程序出现了异常"); } int r = n * n; System.out.println("结果是:" + r); }}
//异常的出现:输入一个数,显示该数的平方import javax.swing.*;class Exception1{ public static void main(String[] args){ int n=0; try{ String str = JOptionPane.showInputDialog("输入"); n = Integer.parseInt(str); }catch(NumberFormatException e){ System.out.println("程序出现了数字格式转换异常"); }catch(Exception e){ System.out.println("程序出现了异常"); } int r = n * n; System.out.println("结果是:" + r); }}
//finallyclass Exception1{ public static void main(String[] args){ try{ System.out.println("打开文件"); System.out.println("读写文件"); Integer.parseInt("a"); }catch(Exception ex){ System.out.println("出现异常"); } finally{ System.out.println("关闭文件连接"); } }}
//finallyclass Exception1{ public static void main(String[] args){ try{ System.out.println("打开文件"); System.out.println("读写文件"); Integer.parseInt("a"); }catch(Exception ex){ System.out.println("出现异常"); } System.out.println("关闭文件连接"); }}
//finallyclass Exception1{ public static void main(String[] args){ try{ System.out.println("打开文件"); System.out.println("读写文件"); return; }catch(Exception ex){} finally{ System.out.println("关闭文件连接"); } }}
//(1)通过异常改变程序行为. //举例:输入一个数,显示该数平方。但是,如果输入格式//不是数字,将反复出现输入框,直到输入正确为止。import javax.swing.*;class Exception1{ public static void main(String[] args){ int n = 0; String message = "输入"; while(true){ try{ String str = JOptionPane.showInputDialog(message); n = Integer.parseInt(str); break; } catch(Exception e){ message = "重新输入"; } } int r = n * n; System.out.println("结果是:" + r); }}
//编写一个函数,输入一个年龄,0-100之间,返回年龄//给主函数。否则返回“范围错误”给主函数。class Exception1{ static int setAge() throws Exception{//该函数可能抛出异常 int inputAge = 2000; if(inputAge<0||inputAge>100) { Exception e = new Exception("范围错误"); throw e;//抛出一个实际的异常 } return inputAge; } public static void main(String[] args){ //如何获得返回/抛出的内容呢? try{ int result = setAge(); System.out.println(result); }catch(Exception e){ System.out.println(e.getMessage()); } }}
JDK 中重要包的作用包名称 内容 举例java.lang 核心语言包,最基本的 API System、Integer、数学运算java.awt 抽象窗口工具包,生成图形用户界面 按钮,界面java.awt.event 事件处理包 按钮点击事件javax.swing 更加丰富的图形用户界面生成包 带图标的按钮java.util 工具包 随机数、日期javax.io 输入输出包 文件读写javax.net 网络编程支持包 网络传输
java.lang 包中的类使用,无需用 import 导入。比如,我们使用“Systerm.out.println()”时,从来没有用“import java.lang.System”来导入 System 类
对于包来说,我们一般可以观察其树型结构,对于类来说,我们一般观察其内容。
另外,我们还可以查看一个类的基本内容。一般情况下,我们可以在左下方窗口选择一个类的链接,这个类的链接就显示在右方窗口。如我们选择“java.awt”包中的“Button”类(首先在左上角的窗口中选择“java.awt”,然后在左下角窗口中选择“Button”)
在右方窗口中,首先列出了 Button 类的继承关系以及基本用法,读者可以在里面看到该类的成员,用如下标记标明:
构造函数,用如下标记标明:
成员函数,用如下标记标明:
以及从父类继承的成员,用如下标记标明:
java中的报错机制
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。