异常:是对问题的描述,将问题进行对象封装,

异常的体系:

Throwable:

  1.Error

  2.Exception

    1.RuntimeException

异常体系的特点:

异常体系中的所有类以及建立的对象都具备可抛性。
可以被throw和throws关键字所操作,只有异常体系具备这个特点。

throw和throws的用法区别:

throw定义在函数内,用于抛出异常对象。

throws定义在函数上,用于抛出异常类,可以抛出多个并用逗号隔开。

当函数内容有throw抛出异常对象,并未进行trycatch处理时,必须要在函数上throws声明,否则会编译失败。
RuntimeException除外,当函数内如果抛出的是RuntimeExcpetion异常,函数上可以不用声明。

异常处理语句:
try
{
   需要被检测的代码;
}
catch ()
{
   处理异常的代码;
}
finally
{
   一定会执行的代码;
}

finally:一定会被执行的代码,通常定义的是用于关闭资源的代码.

特殊情况:当在finally语句之前执行了System.exit(0); 语句时,finally语句不会被执行.

自定义异常:

定义类继承Exception或者RuntimeException

1.为了让自定义类具备可抛性。

2.让该类具备操作异常的共性方法。

当要定义自定义异常的信息时,可以使用父类已经定义好的功能.将异常信息传递给父类的构造函数。

class xxxException extends Exception

{

  xxxException(String message)

  {

    super(message);

  }

}

自定义异常:根据Java中的面向对象思想,将程序中出现的特有问题进行封装。

在子父类覆盖时:
 1.子类抛出的异常必须是父类的异常的子类或者子集。
 2.如果父类或者接口没有异常抛出时,子类覆盖出现异常,只能trycatch处理而不能用throw/throws抛出。

 /*
求圆,和长方形的面积
*/
class NoValueException extends RuntimeException //Exception
{
//private String message;
NoValueException(String message)
{
super(message);
}
} /*
abstract class Shape
{
abstract void getArea();
} class rec extends Shape
*/
//接口也是一种抽象方法
interface Shape
{
void getArea();
}
class Rec implements Shape
{
private int len,wid;
Rec(int len,int wid) //throws NoValueException
{
if(len<=0 ||wid<=0)
throw new NoValueException("len,wid的值非法");
/*
{
System.out.println("len,wid值非法");
}
*/ this.len = len;
this.wid = wid; }
public void getArea()
{
System.out.println("长方形的面积是:"+len*wid);
}
}
class Circle implements Shape
{
private double radius;
public static final double PI = 3.14;
Circle(double radius) throws NoValueException
{
if(radius<=0)
throw new NoValueException("出现了非法值的情况"); this.radius = radius;
}
public void getArea()
{
System.out.println("圆的面积是:"+radius*radius*PI);
} } class ExceptionTest2
{
public static void main(String args[])
{
/*
//继承的是Exception时.
try
{
Rec r = new Rec(-3,4);
r.getArea();
}
catch(NoValueException e)
{
System.out.println(e.toString());
}
*/
//继承的是RuntimeException时,可以不需要进行try操作.出现异常程序会停止.
Rec r = new Rec(3,4);
r.getArea(); try
{
Circle c = new Circle(-3);
c.getArea();
}
catch(NoValueException e)
{
System.out.println(e.toString());
} } }

包:package

作用:让源文件与类文件相分离.

格式:

package 包名; //该定义语句要定义在代码的第一行.(最上方)

有了包名以后,类名的全称就是: 包名.类名 (该类要在包上)

当包中的类相互继承以后,可以访问被protected修饰的属性和方法.包与包之间可以使用的权限有两种:public和protected

四种权限之间能否能访问如下所示:

        public    protected    default(默认权限)    private

同一个类中    Ok      Ok        Ok          Ok

同一个包中    Ok      Ok        Ok          No

子类       Ok      Ok        No          No

不同包中       Ok      No        No          No

注意: 在一个java文件中,不能有两个或者两个以上的公有类或者接口.

导入:import关键字.

作用,用于简化类名的书写.当import以后, 类名可以直接简写,不在需要 包名.类名 的形式书写了.

面向对象好像终于学完了,好多还是不是很懂,不过时间不等人,只能边自学后面的边继续看面向对象的有关知识了.

Java基础笔记-异常总结,包的更多相关文章

  1. Java基础笔记-异常

    Java中的异常机制: Throwable类是 Java 语言中所有错误或异常的超类.主要包括两个子类: Error和Exception. 一般中要处理的异常是Exception. Java中最常见的 ...

  2. Java基础笔记 – Annotation注解的介绍和使用 自定义注解

    Java基础笔记 – Annotation注解的介绍和使用 自定义注解 本文由arthinking发表于5年前 | Java基础 | 评论数 7 |  被围观 25,969 views+ 1.Anno ...

  3. Java基础-Eclipse第三方安装包管理工具之Maven

    Java基础-Eclipse第三方安装包管理工具之Maven 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 玩过Linux的小伙伴应该都知道yum吧,我们只要把搭建好的yum仓库配 ...

  4. 【转】Java基础笔记 – 枚举类型的使用介绍和静态导入--不错

    原文网址:http://www.itzhai.com/java-based-notes-introduction-and-use-of-an-enumeration-type-static-impor ...

  5. java基础之异常 · fossi

    在开发中,异常处理是一个不可绕开的话题,我们对于异常的处理已经非常熟练了,对于异常本身的概念.用法等不再赘述了,直接结合面试问题来加深对异常的理解吧. Throwable 可以用来表示任何可以作为异常 ...

  6. Java基础笔记(一)

    本文主要是我在看<疯狂Java讲义>时的读书笔记,阅读的比较仓促,就用 markdown 写了个概要. 第一章 Java概述 Java SE:(Java Platform, Standar ...

  7. 黑马程序员----java基础笔记中(毕向东)

    <p>------<a href="http://www.itheima.com" target="blank">Java培训.Andr ...

  8. 黑马程序员----java基础笔记上(毕向东)

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 笔记一共记录了毕向东的java基础的25天课程,分上.中.下 本片为上篇,涵盖前10天课程 1. ...

  9. Java基础之异常

    1.异常的概念 异常:程序在运行时出现的不正常情况,也可以说是出现的问题: Java中的异常:出现的不正常的问题也是一类事物,这类事物有一些共性的东西,比如有名称,有产生的原因等,将这些共性的部分抽取 ...

随机推荐

  1. Android学习总结——Content Provider

    原文地址:http://www.cnblogs.com/bravestarrhu/archive/2012/05/02/2479461.html Content Provider内容提供者 : and ...

  2. 力挺8天入门wpf【转载】

    8天入门wpf—— 第八天 最后的补充 摘要: 从这一篇往前看,其实wpf中还有很多东西没有讲到,不过我的原则还是将比较常用的知识点过一遍,如果大家熟悉了这些知识,基本功也就打的差不多了,后续可以等待 ...

  3. 修改MySQL默认最大连接数

    修改MySQL默认最大连接数 MYSQL数据库安装完成后,默认最大连接数是100,一般流量稍微大一点的论坛或网站这个连接数是远远不够的,增加默认MYSQL连接数的方法有两个: 方法一: 进入MYSQL ...

  4. phantomjs API

    phantomjs使用说明         phantomjs实现了一个无界面的webkit浏览器.虽然没有界面,但dom渲染.js运行.网络访问.canvas/svg绘制等功能都很完备,在页面抓取. ...

  5. linq读书笔记3-操作符之select与selectmany

    linq对数据的查询方式的表达形式主要有两种: var demo =from p in pList where p.id=*** select p; var demo =pList.where(p=& ...

  6. 疯狂Android第一章:Android环境配置以及基本概念

    第一章 无关痒痛:Android Studio安装,配置,基本功能介绍! 重点内容:Android应用基本结构分析. 基础概念部分(只需知道作用,原理后见代码): Activity:安卓系统中负责与用 ...

  7. Tomcat地址栏传中文参数乱码问题处理

    javascript中有时需要向后台传递中文参数,再次展示到前台时显示为乱码,解决方案: 方案1:修改Tomcat-conf-server.xml文件 大约69-71行  修改为: <Conne ...

  8. Single Number(JAVA)

    Given an array of integers, every element appears twice except for one. Find that single one. Note: ...

  9. 龙芯3A上V8的编译与测试

    使用平台: loongson3a+debian6.0.3+linux2.6.36.3+gcc4.6.3 一: V8的下载 这里V8是从其官网上使用git下载的: (1)如果没有git和git-svn需 ...

  10. js 打开新页面 window.open()

    利用js打开一个新页面,而不是一个新窗口. 在网上各种东西啊,蛋疼了半天,还白疼了.. 后来看到a标签有target属性,然后又发现window.open()的第二个参数是target,然后我笑了(e ...