java自定义异常类的父类_Java 自定义异常类

/*

*自定义异常类

* sun提供了很多的异常类给我们用于描述程序中各种的不正常情况,但是sun给我提供异常类还不足以描述我们现实生活中所有不正常情况,那么这时候我们就需要自定义异常类。

*

* 需求:模拟feiQ上线的时候,如果没有插上网线,那么就抛出一个没有插上网线的异常,如果已经插上了网上,那么就正常显示好友列表。

*

* 自定义异常类的步骤:  自定义一个类继承Exception即可。

*

* */

class NoIpException extends Exception{ //自定义了一个没有网线的异常类了。

public NoIpException(String message){

super(message); //调用了Exception一个参数的构造函数。

}

}

public class Exception_03 {

public static void main(String[] args) {

// TODO Auto-generated method stub

String ip = "192.168.10.100";

ip = null;

try{

feiQ(ip); // 如果调用了一个声明抛出异常类型的方法,那么调用者必须要处理。

}catch(NoIpException e){

e.printStackTrace();

System.out.println("马上插上网线!");

}

}

public static void feiQ(String ip) throws NoIpException{

if(ip==null){

throw new NoIpException("没有插网线啊,小白!");

}

System.out.println("正常显示好友列表..");

}

}

需求:模拟你去吃木桶饭,如果带钱少于了10块,那么就抛出一个没有带够钱的异常对象,如果带够了,那么就可以吃上香喷喷的地沟油木桶饭.

//定义没钱的异常

class NoMoneyException extends Exception {

public NoMoneyException(String message){

super(message);

}

}

class Demo3

{

public static void main(String[] args)

{

//System.out.println("Hello World!");

try{

eat(9);

}catch(NoMoneyException e){

e.printStackTrace();

System.out.println("跟我洗碗一个月!!");

}

}

public static void eat(int money) throws NoMoneyException{

if(money<10){

throw new NoMoneyException("吃霸王餐");

}

System.out.println("吃上了香喷喷的地沟油木桶饭!!");

}

}

异常体系:

--------| Throwable  所有错误或者异常的父类

--------------| Error          (错误)

--------------| Exception    ( 异常 )  异常一般都通过代码处理

------------------| 运行时异常:  如果一个方法内部抛出了一个运行时异常,那么方法上 可以声明也可以不 声明,调用者可以以处理也可以不处理。

------------------| 编译时异常(非运行时异常、受检异常): 如果一个方法内部抛出了一个编译时异常对象,那么方法上就必须要声明,而且调用者也必须要处理。

运行时异常: RuntimeException以及RuntimeException子类 都是属于运行时异常。

编译时异常: 除了运行时异常就是编译异常。

疑问: 为什么java编译器会如此严格要求编译时异常,对运行时异常如此宽松?

运行时异常都是可以通过程序员良好的编程习惯去避免,所以java编译器就没有严格要求处理运行时异常。

*/

import java.security.acl.*;

class Demo4

{

public static void main(String[] args) throws InterruptedException

{

int[] arr = null;

div(4,0,arr);

Object o = new Object();

o.wait();

}

public static void div(int a , int b ,int[] arr) {

if(b==0){

return;

}

int c = a/b;

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

if(arr!=null){

System.out.println("数组的长度: "+arr.length);

}

}

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值