从零基础接触java第六周第二节

  前面跟大家讲了接口和多态,今天我来跟大家分享异常,在其中我会与大家大概分享一下object,同时关于设计模式由于我这儿是为大家大概讲述java,让大家方便以后学习,所以我的主要目的是让大家以最短的时间温习java,方便明日课堂上你能跟上节奏。

  首先我跟大家说一下object类,这儿类是所有类的父类,对,你没听错,所有类的父类,任何一个类只要我们定义了都隐性地继承了object类。前面我讲过,继承父类的话能直接调用父类的非私有方法,既然我们的所有类都默默继承了object类,那么当然,也能默默地调用object里的方法。比如toString这些方法,具体还希望大家下来进行查看,关于object就是一个隐性的父类,这儿大家需要了解知道,我也就大概说说,而对于父类的用法我相信大家应该早就了如指掌。

  接下来我跟大家分享分享异常,什么是异常?请大家看一下代码:

public class Test{
public static void main(String[] args){
new MyException().pln();
}
}
class MyException{
int i = 0;
int k = 5;
int sum = k/i;
public void pln(){
System.out.println(sum);

System.out.println("运行完毕");
}
}

关于上述代码,大家如果用编辑器敲代码,不会报任何错误,但是当大家运行时,则会抛出这样一句话:

Exception in thread "main" java.lang.ArithmeticException: / by zero
at KnotPackage.MyException.<init>(Test.java:11)
at KnotPackage.Test.main(Test.java:5)

这句话便是一句异常,异常原因大家可以看到是by zero,除数为零的原因,而且异常一旦执行,我们接下来后面的代码便不能运行,导致全盘崩溃。所以我们需要一句代码来处理异常,同时保证下面的代码能正常运行。这儿我们处理的方式有两种,一种是直接处理的try,一种是throws抛,接下来我用try给大家处理一下以下异常:

public class Test{
public static void main(String[] args){
new MyException().pln();
}
}
class MyException{
int i = 0;
int k = 5;
int sum;
public void pln(){
try {
sum = k/i;
} catch (Exception e) {
System.out.println("当中发生了异常");
}
System.out.println(sum);
System.out.println("运行完毕");
}
}

在上述代码中,我们便用try处理了异常,并且在catch里面输入了处理方法,方法是直接告诉我们当中发生了异常。这儿如果我们再次运行,我们不仅能获得sum=0的答案,同时还能得知当中发生了异常的报告,并且获得运行完毕的回答,在上述代码中,try里面放的就是有可能发生异常的语句,如果一旦发生异常,那么我们便获得catch里面的结果,如果没有发生异常,那么便正常执行。除了上述解决异常的方法,我们还有一种方法就是throws,抛,在讲throws之前,我要提前申明一句,任何异常都需要处理,否则系统会默认抛给虚拟机,然后导致整个程序直接崩溃。所以请看一下代码:

public class Test{
public static void main(String[] args){
try {
new MyException().pln();
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.println("发生异常");
}
System.out.println("运行完毕");
}
}
class MyException{
int i = 0;
int k = 5;
int sum;
public void pln() throws Exception{
sum = k/i;
System.out.println(sum);
}
}

大家可以看到,我在方法pln()后面直接加了个throws exception,这表示的便是抛出一个异常,表示告诉调用自己的方法我这儿可能会发生异常,然后我们在主函数调用的时候,大家可以看到我们就加了try处理异常,最终我们得到的答案便是:发生异常。运行完毕。这边是异常的两种处理方式,一直是抛,throws,一种是try,记住我前面的申明,异常必须处理,否则会直接交给虚拟机导致全盘崩溃。

  接下来我最后还要跟大家分享一点,除了上面两种处理异常的方式,我们还能自定义一个异常。也许你会问,为什么我们还要自找麻烦自定义异常啊?这儿小编告诉大家,目前你还不需要知道为什么,既然有它的存在,就必定是因为一些大牛遇到过所以得让我们以后使用。这儿我们可以用throw直接抛一个异常,而throws也是抛异常,他们有什么区别,这儿小编告诉大家,一个是throw是直接抛出一个异常,也就是说 ,throw是直接告诉系统,我这儿已经明确有异常。而throws是告诉系统,我这儿有可能会有异常。所以,两个异常都需要用try处理。但是throw由于是直接抛出异常,我们一般用于方法中,列如:

public class Test{
public static void main(String[] args){
try {
throw new Exception();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

如上述代码,我们在主函数中直接new了一个exception异常类,然后用throw直接抛出,这儿便是throw的用法,直接抛出一个确定的异常。当然,这个异常也必须要处理,切记。最后,我要告诉大家如何定义一个异常类,其实方法很简单,如以下代码:

class MyException extends Exception{
}

直接写一个类继承exception,这我相信大家很熟悉了,子类继承父类,既然父类是个异常类,那么子类继承了这个异常类当然也成了异常,同时还能调用父类的非私有方法和属性,这样便成功定义了一个异常类。

  关于异常小编到这儿就跟大家分享完了,同时小编希望大家能在java的世界里节节高,更上一层楼。

1、资源项目源码均已通过严格测试验证,保证能够正常运行;、 2项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行;、 2项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 、 1资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READmE.文件(md如有),本项目仅用作交流学习参考,请切勿用于商业用途。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值