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

异常的体系:

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. vector的内存分配与释放

    1. vector内存分配 <Effective STL>中"条款14":使用reserve来避免不必要的重新分配 关于STL容器,最神奇的事情之一是只要不超过它们的最 ...

  2. 记录一个原因不明的段错误(libxml2 proc activemq的三角恋)

    又碰到了令人头疼的段错误,但是这次,虽然最终找到了出自何处,但是还是不明白究竟是为何. 最后将程序简化,贴上来,希望高人能指点一下. memt.pc: #include <libxml/pars ...

  3. LinearGradient线性渲染

    import android.content.Context; import android.graphics.Canvas; import android.graphics.Color; impor ...

  4. 利用iptables将本地的80端口请求转发到8080,当前主机ip为192.168.1.1,命令怎么写?

    iptables -t nat -A PREROUTING -d 192.168.1.1 -p tcp --dport 80 -j REDIRECT --to-port 8080 内网上外网: ipt ...

  5. ADO.net基础学习总结

    ADO.net是一门.net连接.操作数据库的技术   释放资源:凡是实现了idisposable借口的类都需要用using来释放资源 using() { } 连接数据库 //创建数据库连接: usi ...

  6. W3C-XML

    XML XML Extensible Markup Language,可扩展标记语言 1 XML和HTML的区别 XML主要用来传输数据 HTML主要用来呈现数据内容 2 XML的主要用途 传输数据 ...

  7. Android应用自动更新功能的实现!!!

    自动更新功能的实现原理,就是我们事先和后台协商好一个接口,我们在应用的主Activity里,去访问这个接口,如果需要更新,后台会返回一些数据(比如,提示语:最新版本的url等).然后我们给出提示框,用 ...

  8. ASP.NET通用权限验证组件实现

    沙发(SF)通用权限验证组件 开篇 本篇介绍通用权限验证的实现代码思路,总共分为导入参数.解析XML.根据XML配置进行处理.返回结果. 代码架构图 1.   类介绍 1.SFWebPermissio ...

  9. 搭建discuz论坛(2)

    修改host文件: 使用ab做性能测试: E:\Apache2.2\bin>ab -n1000 -c100 http://bbs.ct.gd/

  10. 安装Cocoapoads遇到的问题的解决办法

    错误一.首先来个错误截图