/*
异常
异常定义了程序中遇到的非致命的错误,而不是编译时的语法错误,如程序要打开一个不存在的文件
网络连接中断,操作数越界,装载一个不存在的类等 try, catch语句
throws关键字
自定义异常与Throw关键字
如何对多个异常进行处理
我们可以在一个方法中使用throw,try...catch语句来实现程序的跳转
一个方法被覆盖时,覆盖它的方法必须扔出相同的异常或异常的子类
如果父类扔出了多个异常,那么重写(覆盖)方法必须扔出那些异常的一个子集,
也就是说不能扔出新的异常 包
1 package语句及应用
2 package语句作为java源文件的第一条语句,如果没有package语句,则为缺少无名包
3 import语句及应用
4 jdk常用的包
java.lang...包含一些java语言的核心类,如String, Math, Integer, System.和Thread,提供常用功能
java.awt..包含了构成抽象窗口工具集(abstract window toolkits)的多个类,这些类被用来构建和管理应用程序的图形用户界面(GUI)
java.applet...包含applet运行所需的一些类
java.net...包含执行与网络相关的操作类
java.io...包含能提供多种输入/输入功能的类
java.util...包含一些实用工具类,如定义系统特性,使用与日期日历相关的函数 javac -d . Lesson44.java 如果存在包名的话,那么就按目录生成编译文件 找不到类的三个排错方法
1: 类名写错了
2: 包名错误,是否import这个类所在的包名
3: 查看classpath是否设置类型 访问控制 private default protected public
同一类----------- 可 可 可 可
同一包中的类------ 可 可 可
子类------------- 可 可
其他包中的类----- 可 类本身也有访问控制,即在定义类的class关键字前加上访问
控制符,但类本身只有两种访问控制,
即public和 默认,父类不能是private 和protected
否则子类无法继承,public修饰的类能被所有的类访问
默认修饰(即class关键字前没有访问控制符)的类
只能被同一个懈中的所有类访问 java的命名习惯 下面是java中的一些命名习惯,假设xxx, yyy, zzz分别是一个英文单词的拼写 1 包名中的字母一律小写,如:xxxyyyzzz
2 类名,接口名应当使用名词,每个单词的首字母大写,如XxxYyyZzz
3 方法名,第一个单词小写,后面的每个单词的首字母大写,如:xxxYyyZzz
4 变量名,第一个单词小写,后面每个单词的首字母大写,如xxxYyyZzz
5 常量名中的第个字母一律大写,如XXXYYYZZZ 使用jar文件
jar -cvf
jar -tvf
jar -xvf
jar -tvf > a.txt 用rar查看jar文件中的内容
注意压缩后的jar文件中的目录结构
快速查看jar包中是否有我们想找的类 jar查看帮助 jar -cf lesson4.jar org 将org目录生成一个lesson4.jar的包文件
jar -cvf lesson4.jar org jar -tf lesson4.jar 查看包内容 jar -xvf lesson4.jar 解压包 jar -xvf rt.jar > 1.txt 重写向 */
package org.it315; //import java.awt.*;
//import java.awt.event.*; //import java.sql.*;
//import java.util.*; /*class SubTest extends Test
{
//在子类中只能扔出父类的异常,只能比父类的少,不能比父类的异常多
public int devide(int x, int y) throws NullPointerException
{ }
};*/ //定义自己的异常类
import org.it315.*;
import org.it315.example.*; class TestException
{
public static void main(String[] args) //throws Exception
{
try
{
new org.it315.example.Test().devide(3,1);
//new org.it315.example.Test().fun1();
//现在不能访问了,因为TestSub是Test类的子类,但TextException类的子类,所以不能访问 //如果为如果fun1()为public将可以被其它包中的类访问 //new Test().fun1();
//int i=1+1; }
catch(ArithmeticException e)
{
System.out.println("ArithmeticException");
e.printStackTrace();
}
catch(org.it315.DevideByMinusException e)
{
System.out.println("DevideByMinusException");
e.printStackTrace();
return;
//System.exit(0); //程序到此结束了,
//finally将不被执行了
}
catch(Exception e)
{
System.out.println(e.getMessage());
} finally
{
System.out.println("不管是否有异常,finally的代码都要执行");
}
System.out.println("program is running here!");
}
} class TestSub extends Test
{
public void fun3()
{
fun1();
}
};

  

package org.it315;

public class DevideByMinusException extends Exception
{ public DevideByMinusException(String msg)
{
super(msg);
}
};

  

package org.it315.example;
//import org.it315.*;
import org.it315.DevideByMinusException; public class Test
{
//throws Exception加上该throws Exception 在调用该函数时,那么必须实现try...catch
//多个异常类的处理
//public int devide(int x, int y) throws ArithmeticException, org.it315.DevideByMinusException
public int devide(int x, int y) throws ArithmeticException, DevideByMinusException
{
if(y<0)
{
//throw new org.it315.DevideByMinusException("devisor is "+y);
throw new DevideByMinusException("devisor is "+y);
}
int result = x/y;
return result;
} //throw try...catch还可以实现话句的跳转
/*void fun()
{
try{
if(x==0)
{
throw new XxxException("xxx"); }else{
throw new YyyException("yyy");
}
}catch(XxxException e)
{
//......
}
catch(YyyException e)
{
//.....
}
}*/ //private void fun1()
protected void fun1() //没有访问修饰的叫做包类型的访问修饰符. 在其它的包中是不可以访问
{ } private void fun2()
{
fun1();
}
} class Test1
{
public static void main(String[] args)
{
new Test().fun1();
}
};

  

java第四节 异常/访问控制/jar包的更多相关文章

  1. java jvm学习笔记七(jar包的代码认证和签名)

    欢迎装载请说明出处:http://blog.csdn.net/yfqnihao 前言: 如果你循序渐进的看到这里,那么说明你的毅力提高了,jvm的很多东西都是比较抽像的,如果不找相对应的代码来辅助理解 ...

  2. java转换json需要导入的jar包,org/apache/commons/lang/exception/NestableRuntimeException

    缺少相应jar包都会有异常,根据异常找jar包导入......     这里我说下lang包,因为这个包我找了好半天:   我用的是: commons-lang3-3.1.jar  出现异常: jav ...

  3. eclipse java项目中明明引入了jar包 为什么项目启动的时候不能找到jar包 项目中已经 引入了 com.branchitech.app 包 ,但时tomcat启动的时候还是报错? java.lang.ClassNotFoundException: com.branchitech.app.startup.AppStartupContextListener java.lang.ClassN

    eclipse java项目中明明引入了jar包 为什么项目启动的时候不能找到jar包 项目中已经 引入了 com.branchitech.app 包 ,但时tomcat启动的时候还是报错?java. ...

  4. 用命令行编译java并生成可执行的jar包

    用命令行编译java并生成可执行的jar包 1.编写源代码. 编写源文件:CardLayoutDemo.java并保存,例如:I:\myApp\CardLayoutDemo.java.程序结构如下: ...

  5. 转!java web项目 build path 导入jar包,tomcat启动报错 找不到该类

    在eclipse集成tomcat开发java web项目时,引入的外部jar包,编译通过,但启动tomcat运行web时提示找不到jar包内的类,需要作如下配置,将jar包在部署到集成的tomcat环 ...

  6. 不要轻易在java ext 目录放任何三方jar包

    今天在编写一个简单spi 应用demo的时候,在编译时总有一个其他的错误,如下: ERROR Failed to execute goal org.apache.maven.plugins:maven ...

  7. Java SE 9 多版本兼容 JAR 包示例

    Java SE 9 多版本兼容 JAR 包示例 作者:Grey 原文地址:Java SE 9 多版本兼容 JAR 包示例 说明 Java 9 版本中增强了Jar 包多版本字节码文件格式支持,也就是说在 ...

  8. java中使用URLClassLoader访问外部jar包的java类

    很多时候 我们写的Java程序是分模块的,有很好的扩展机制,即我们可以为我们自己的java类添加插件,来运行将来某天我们可能开发出来的类,以下称这些类为插件类. 下边是一种简单的实现方法: Class ...

  9. 曹工说Spring Boot源码(25)-- Spring注解扫描的瑞士军刀,ASM + Java Instrumentation,顺便提提Jar包破解

    写在前面的话 相关背景及资源: 曹工说Spring Boot源码(1)-- Bean Definition到底是什么,附spring思维导图分享 曹工说Spring Boot源码(2)-- Bean ...

随机推荐

  1. 脚本中export不起作用的原因分析

    #!bin/bash export PATH=$PATH:/usr/lib/java/jre export PATH=$PATH:/usr/lib/java/bin ---path 结果发现直接运行. ...

  2. [转]nginx下的url rewrite

    转:http://zhengdl126.iteye.com/blog/698206 if (!-e $request_filename){rewrite "^/index\.html&quo ...

  3. CF 329A(Purification-贪心-非DLX)

    A. Purification time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...

  4. xml获取配置DataTable

    在CSDN写博客时,经常遇到需要绑定数据源的时候,可是自己从数据库获取数据的函数都是已经封装好了的,这样别人复制你的代码,要想看到结果,还得修改修改,很是麻烦,博客实例,数据源简单点就好,这样别人写你 ...

  5. 如何mount一个Isilon的NFS的file share?

    命令如下: mount -o vers=3,proto=tcp 172.16.200.41:/ifs/nfsshare1 /mnt/localfolder1 简单版的 mount 192.168.1. ...

  6. thinkphp生成的验证码不显示问题解决

    在调用验证码之前加上 ob_clean(); 不显示验证码的代码: public function verify(){ $verify = new \Think\Verify(); $verify-& ...

  7. 已知(x,y,z,yaw,pitch,roll)如何得到4*4的转换矩阵?

    作者:Nicholas链接:https://www.zhihu.com/question/41514206/answer/104827395来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商 ...

  8. PHP入门(一)

    一.概述 PHP(Hypertext Preprocessor缩写),全称超级文本预处理器,是一种在服务器端执行的脚本语言.因此既具备了脚本语言的优缺点 ,又具备了后台服务器语言的优异性能.可以说PH ...

  9. vue版本冲突解决办法

    ERROR in Vue packages version mismatch: vue@2.1.4 vue-template-compiler@2.1.5 This may cause things ...

  10. 编程实战——电影管理器之XML存储电影信息数据

    但凡管理器之类的软件,存储数据是必不可少的.存储数据的话,有几种选择.一是用数据库,把数据存储到数据库里:一是用文本文件,把数据存储到文本文件里:一种是利用XML文件,把数据对象转换为XML后,存储到 ...