------ android培训、java培训、java基础学习技术总结、期待与您交流! ----------
异常:就是程序在运行时出现不正常情况
异常的由来:问题也就是现实生活中一个具体的事物,也可以通过java的类的形式进行描述,并封装成对象。
其实就是java对不正常情况进行描述后的对象体现;
对于问题的划分:两种:一种是严重的问题,一种是非严重的问题‘’
对于严重的,java通过Error类进行描述。
对于Error一般不编写针对性的代码对其进行处理
对于非严重的,java通过Excetion类进行描述。
对于Exception可以使用针对性处理方式进行处理。
无论Error或者Exception都具有共同的行为
Throwable是java语言中Error或者Exception的父类。
ArithmeticException
java用面向对象的思想,对一些常见的问题进行封装,把问题变成对象
2.异常的处理
java提供了特有的语句进行处理。
try{
需要检测的代码;
}
catch(类 变量){
异常处理
}
finally{
}
3.对捕获到的异常对象进行常见的方法操作。
对多异常的处理
1.声明异常时,建议声明更为具体的异常,这样可以处理的更具体。
2.对方声明几个异常,就对应有几个catch块。
如果多个catch块中的异常出现继承关系,父类异常catch块放在最下面。
建立在进行catch处理时,catch中一定要定义具体的处理方式。
不要简单的定义一句e.printStacktrace()
不要写简单的输出语句。
项目中会出现特有的问题,
而这些问题并未被java所描述并封装对象。
所以对于这些特有的问题可以按照java对问题封装的思想。
将特有的问题。进行自定义的异常封装。
自定义异常
需求:在本程序中,对于除数是-1,也视为是错误的是无法进行的运算的。
那么就需要对这个问题进行自定义的描述。
自定义的异常需要继承Exception
当在函数内部出现了throw抛出一场对象,那么就必须要给对应的处理动作。
要么的内部try catch处理,要么在函数上声明让调用者处理
一般情况在,函数内出现了异常,函数上需要声明。
发现打印的结果中只有异常的名称,却没有异常的信息。
因为自定义的异常并未定义所属信息。
如何自定义异常信息呢?
因为父类中已经把异常信息的操作都完成了。
所以子类只要在构造时,将异常信息传递给父类通过suer语句。
那么就可以直接通过getMessage方法获取自定义的异常信息。
必须是自定义类继承Exception
继承Exception原因
异常体系有一个特点,异常类和异常对象都被抛出。
他们都具有可抛性。这个可抛性是Throwable这个体系中独有特点
只有这个体系中的类和对象才可以被Throws和throw操作。
throws和throw的区别
throws使用在函数上,throw使用在函数内
throws后面跟的是异常类,可以跟多个,用逗号隔开。
throw后跟的是异常对象。
代码1示例如下:
此程序会报除零异常
class Demo{ int div(int x,int y){ return x/y; } } public class ExceptionDemo { public static void main(String[] args) { Demo d=new Demo(); int x=d.div(4,0); System.out.println("x="+x); System.out.println("over"); } }
代码示例2如下:
class Demo2 { int div(int a,int b)throws Exception{//在功能上通过throws的关键字声明有可能出现问题。 return a/b; } } public class ExceptionDemo2 { public static void main(String[] args) { Demo d = new Demo(); try { int x = d.div(4, 0); System.out.println("x+" + x); } catch (Exception e) { System.out.println("除零了!"); System.out.println(e.getMessage()); System.out.println(e.toString()); e.printStackTrace(); // jvm默认的异常处理机制,打印异常的堆栈信息 } System.out.println("over"); } }
代码示例3如下:
class Demo3 { int div(int a,int b)throws Exception { return a/b; } } public class ExceptionDemo3 { public static void main(String[] args) throws Exception { Demo3 d = new Demo3(); int x = d.div(4, 0); System.out.println("x+" + x); System.out.println("over"); } }
代码示例4如下:
class Demo4{ int div(int a,int b)throws ArithmeticException,ArrayIndexOutOfBoundsException{ int arr[]=new int[a]; System.out.println(arr[4]); return a/b; } } public class ExceptionDemo4 { public static void main(String[] args) { Demo4 d=new Demo4(); try{ int x=d.div(4, 0); System.out.println("x+"+x); }catch(ArithmeticException e){ System.out.println(e.toString()); System.out.println("被除零啦!"); }catch(ArrayIndexOutOfBoundsException e){ System.out.println(e.toString()); System.out.println("角标越界啦!"); }/*catch(Exception e){ System.out.println("hhhaa:"+e.toString()); }*/ System.out.println("over"); } }
代码示例5如下:
class FuShuException extends Exception{ private String msg; private int value; FuShuException(String msg,int value){ super(msg); this.value=value; } public int getValue(){ return value; } /*public String toString(){ return msg; }*/ } class Demo5{ int div(int a,int b)throws FuShuException { if(b<0) throw new FuShuException("除数为负数!",b); return a/b; } } public class ExceptionDemo5 { public static void main(String[] args) { // TODO Auto-generated method stub Demo5 d=new Demo5(); try{ int x=d.div(4, -1); System.out.println("x+"+x); }catch(FuShuException e){ System.out.println(e.toString()); System.out.println("除数出现负数啦!"+e.getValue()); } } }
相关推荐
11. 异常处理:学习Hibernate常见的异常,如ConstraintViolationException、ObjectRetrievalFailureException等,以及如何进行相应的错误处理。 12. 实战演练:结合提供的"代码"和"思路图",通过实际编写和运行代码...
5. **异常处理**:讲解如何使用try-catch语句块进行错误处理,以及理解不同类型的异常,如IOException、NullPointerException等。 6. **输入/输出流**:解释I/O流的概念,教授如何使用FileReader、FileWriter、...
【标题】"01_黑马程序员_张孝祥_Java基础加强_课程价值与目标介绍.zip" 提供的是一门由黑马程序员机构推出的Java基础强化课程,由讲师张孝祥主讲,旨在深入讲解Java编程的基础知识并进行能力提升。 【描述】中提到...
总结来说,《黑马程序员_Java基础辅导班教程课件[第01期]第15天》的内容可能涉及了Java语言的核心概念,包括面向对象编程、控制结构、异常处理、文件I/O、集合框架以及内存管理等。通过深入学习和实践这些知识点,...
学习Java的面向对象编程概念,如类、对象、继承、多态等,以及异常处理和集合框架,是Android开发的前提。另外,Kotlin作为现代的Android开发语言,也被越来越多的开发者采用,其简洁的语法和安全特性使得编写代码...
6. **异常处理**:介绍如何使用try-catch语句捕获和处理运行时错误。 7. **IO流**:教授输入输出流的使用,包括文件读写、对象序列化和反序列化等。 8. **集合框架**:介绍ArrayList、LinkedList、HashSet、HashMap...
这个名为“黑马程序员_毕向东_Java基础源码.rar”的压缩包文件,包含了丰富的Java基础源代码实例,对于初学者来说,是深入了解Java编程的良好资源。 一、Java基本语法 Java语言以其严格的类型检查和面向对象特性...
总的来说,这份"黑马程序员_struts2框架开发2016版讲义和笔记资料"是一个全面学习和掌握Struts2框架的宝贵资源,涵盖了从基础到实践的所有重要方面,对于提升Java EE开发者的技能水平大有裨益。通过系统学习,开发者...
"黑马程序员_Java基础辅导班教程课件[第01期]第11天"是一个专门为初学者设计的培训课程,旨在帮助学员深入理解和掌握Java的核心概念。这个课程可能是通过视频形式进行的,结合了理论讲解和实际操作,以便让学习者能...
在这个“黑马程序员_毕向东_Java基础视频教程第18天-12-IO流(文本文件读取练习)”中,毕向东老师将深入讲解如何使用Java IO流来读取文本文件。Java IO流提供了多种类和方法,使得开发者可以灵活高效地处理输入和输出...
【Java基础辅导班教程】- 黑马程序员 在编程世界中,Java是一种广泛应用的面向对象的编程语言,尤其在企业级应用开发中占据主导地位。"黑马程序员"作为知名的IT培训机构,提供了丰富的Java基础辅导课程,旨在帮助...
在本课程中,“黑马程序员”将引导我们逐步学习如何在短短两小时内编写一个Android应用程序。这个教程特别关注的是第5天的内容,主要涉及到天气预报应用的开发,包括数据获取、数据显示以及网络图片的查看功能。下面...
7. **异常处理**:Java中的异常处理是程序健壮性的重要组成部分。学习者可能学习了如何使用try-catch-finally语句块,以及如何自定义异常。 8. **文件与IO流**:虽然未明确指出,但文件操作和IO流通常是Java基础...
本教程《黑马程序员_毕向东_Java基础视频教程第18天-13-IO流(拷贝文本文件)》专注于讲解如何利用IO流来实现文本文件的复制操作。这个过程涉及到了对文件读取、数据缓冲以及写入等基础知识,对于初学者来说是理解和...
根据提供的文件信息,我们可以推断出这是一套由知名IT教育机构“黑马程序员”出品、由讲师毕向东主讲的Java基础教学视频。由于实际视频内容无法直接获取,本篇将依据标题、描述以及部分标签内容,综合分析并展开相关...
在"黑马程序员_Java基础辅导班教程课件[第01期]第10天"中,我们聚焦于Java编程语言的基础知识,这是一门面向初学者的课程,旨在帮助学员快速掌握Java的核心概念。通过这个阶段的学习,学员将能够理解并运用Java的...
6. **异常处理**:在处理IO操作时,必须注意可能出现的异常,如`FileNotFoundException`和`IOException`。通常会用try-catch语句块来捕获并处理这些异常,确保程序的健壮性。 7. **关闭流**:在完成文件操作后,...
在"黑马程序员_Java基础辅导班教程课件[第01期]第4天"中,我们可以推测这是针对初学者的Java编程课程,旨在帮助学员掌握Java的基础知识。 在课程的第4天,可能讲解了以下核心概念: 1. **类(Class)**:`Demo.class...
通过这套《黑马程序员_历经5年锤炼(适合初学者入门的Java基础视频)》,初学者能够系统地学习Java的基础知识,为后续深入学习和实战打下坚实的基础。Java作为一种强大的编程语言,在软件开发领域有着不可替代的地位,...