一、自定义异常:

1、自定义异常的概念:在java编程中,我们会遇到很多问题,但是这些问题异常,java并没有给我们定义好,那么我们就要自己定义这些异常,这就是自定义异常;

2、throws
是声明异常的,它在函数的后面,后面接异常类名;而throw
是抛出异常的,它定义在函数的里面,后面跟异常对象。如果没有定义抛出,遇到异常,会默认产生一个异常对象,然后抛给函数的调用者,最后会抛给虚拟机,虚拟机调用默认处理方法进行处理。

3.注意所有的自定义异常都要继承Exception这个父类,才能调用父类中的方法,进行抛出操作。

4,在使用getMessage()方法获取信息时,没有信息,我们可以在自定义类中,对对象进行初始化,而且可以调用Exception中的方法,在构造函数中写上super(message);就可以了。

下面通过代码来体现以上特点:

class ExceptionDemo4

{

 public static void main(String[] args)

 {

   Rid r=new Rid();

   try

  {

   int
x=r.function(4,-1);

     
System.out.println("x="+x);

  }

  catch(Exception e)

  {

   System.out.println("chu
shu is fushu");

   System.out.println(e.getMessage());

System.out.println(e);

e.printStackTrace();

}

  System.out.println("over");

}

}

//定义一个异常类

class ShuFuException extends Exception

{

 private String message;

 ShuFuException(String message)

 {

  //this.message=message;

  super(message);

 }

 //父类中已经定义好了getMessage的功能,我们直接

 //拿来用就可以了

 

}

//定义一个功能类

class Rid

{

 public int function(int a,int b)throws
ShuFuException

 {

  if(b<0)

   throw new
ShuFuException("除以负数了");

  return a/b;

 }

}

二、Exception类中有一个特殊的异常子类,就是Runtime类,运行时异常

如果在函数里面抛出异常,即使函数后不声明异常,一样可以编译运行。

如果函数后面声明了异常,即使调用该方法的函数不做出处理,编译一样可以通过,只是没有结果。

所以当异常不需要处理时,我们就继承RuntimeException异常来处理,无法在进行运算时,都要继承这个异常。

自定义异常以及runtime类的更多相关文章

  1. 深入研究java.lang.Runtime类

    一.概述      Runtime类封装了运行时的环境.每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接.      一般不能实例化一个Runtime对象, ...

  2. 浅析Java.lang.Runtime类

    一.概述      Runtime类封装了运行时的环境.每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接.      一般不能实例化一个Runtime对象, ...

  3. java 23 - 3 单例模式实现Runtime类

    Runtime:每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接. 其中一个方法: exec(String command) 在单独的进程中执行指定的字符串 ...

  4. Runtime类

    Runtime类表示运行时的操作类,是一个封装了JVM进程的类,每一个JVM都对应着一个Runtime类的实例,此实例由JVM运行时为其实例化. //========================= ...

  5. JAVA基础学习之final关键字、遍历集合、日期类对象的使用、Math类对象的使用、Runtime类对象的使用、时间对象Date(两个日期相减)(5)

    1.final关键字和.net中的const关键字一样,是常量的修饰符,但是final还可以修饰类.方法.写法规范:常量所有字母都大写,多个单词中间用 "_"连接. 2.遍历集合A ...

  6. Runtime类及其常用方法

    每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接.可以通过 getRuntime 方法获取当前运行时. 常用方法: 1.public static Runt ...

  7. 深入研究java.lang.Runtime类【转】

    转自:http://blog.csdn.net/lastsweetop/article/details/3961911 目录(?)[-] javalang 类 Runtime getRuntime e ...

  8. java.lang.Runtime类总结 【转】

    转自:http://blog.chinaunix.net/uid-128922-id-289994.html  Runtime类封装了运行时的环境.每个 Java 应用程序都有一个 Runtime 类 ...

  9. 【转】深入研究java.lang.Runtime类

    一.概述      Runtime类封装了运行时的环境.每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接.      一般不能实例化一个Runtime对象, ...

随机推荐

  1. 【Ubuntu Java 开发环境搭建 】

    配置环境变量  在终端下:  sudo gedit /etc/profile   这里当然有些熟悉ubuntu的朋友也可以用 vim,   刚从windows转过来的朋友还是用gedit看着舒服写. ...

  2. longblogV1.0——我的静态博客发布系统

    longblogV1.0——我的静态博客发布系统 环境依赖: python3-markdown 作者:IT小小龙个人主页:http://long_python.gitcafe.com/电子邮箱:lon ...

  3. 3D魔方游戏

    初学OpenGL时做的小程序,涉及到了OpenGL的大部分基本内容,如视图模型变换.色彩.纹理贴图.材质.光照.显示列表.选择等 三阶魔方有3×3×3个方块组成,每个方块的类当中都有一个4×4的矩阵, ...

  4. ubuntu安装和卸载软件命令

    ubuntu安装和卸载软件命令 Ubuntu软件安装与删除相关命令 安装软件 命令: apt-get install softname1 softname2 softname3…… 卸载软件 命令: ...

  5. uva 11019 Matrix Matcher

    题意:给出一个n*m的字符矩阵T,你的任务是找出给定的x*y的字符矩阵P在T中出现了多少次. 思路:要想整个矩阵匹配,至少各行都得匹配.所以先把P的每行看做一个模式串构造出AC自动机,然后在T中的各行 ...

  6. getsockopt/setsockopt 函数说明

    [ getsockopt/setsockopt系统调用]       功能描述: 获取或者设置与某个套接字关联的选 项.选项可能存在于多层协议中,它们总会出现在最上面的套接字层.当操作套接字选项时,选 ...

  7. Bzoj4556: [Tjoi2016&Heoi2016]字符串 后缀数组

    4556: [Tjoi2016&Heoi2016]字符串 Time Limit: 20 Sec  Memory Limit: 128 MBSubmit: 169  Solved: 87[Sub ...

  8. Hdu 5289-Assignment 贪心,ST表

    题目: http://acm.hdu.edu.cn/showproblem.php?pid=5289 Assignment Time Limit: 4000/2000 MS (Java/Others) ...

  9. android NDK 实用学习(四)-类缓存

    1,为什么需要类缓存: 答:由于频繁的查找类及类成员变量需要很大的时间与空间开销,可参考如下文章: http://www.ibm.com/developerworks/cn/java/j-jni/ h ...

  10. 谷歌官方刷新组件SwipeRefreshLayout

    今天开始使用谷歌的SwipeRefreshLayout,会记下一些坑 1.手动调用setRefreshing(true)不会出现刷新动画 原因是:SwipeRefreshLayout indicato ...