Java异常

什么是异常?

   异常是程序在运行或编译时,任何中断正常程序流程的错误,主要是语法错误和语义错误。但错误和异常是不同的,错误它指的是一个合理的应用程序不能截获的严重的问题,是很难解决的。在Java中异常Exception和错误Error有个共同的父类Throwable

异常的分类

  java中的异常可分为两类:运行时异常和编译时异常。

运行时异常是RuntineException类及其子类,当出现这种错误时,编译器是不会去检查它的。

编译时异常是除了RuntineException类及其子类外的其他Exception类及其子类,当出现这种错误时,编译器会检查它,这种异常的特点是要么用try...catch捕获处理,要么用throws语句声明抛出,否则编译不会通过。

 

异常处理机制

  Java异常处理是通过5个关键字来处理的。它们是trycatchthrowthrowsfinally。其中trycatch要一起使用,不能单独使用。

 

运行时异常的处理方法

  对于这类异常,我们不需要异常处理的关键字来处理,而是在程序编写时,尽量去避免这种异常,一旦发现该异常,正确的做法就是改进程序设计的代码和实现方式,修改程序中的错误,从而避免这种异常。 

 

编译时异常的处理方法

1.使用trycatch、finally

  try来捕获可能出现的异常的语句,catch是出现异常时的处理方法。在程序中使用的格式为:

     try

     {

      可能发生异常的代码块;

     }

      catch(异常类型异常对象名)

     {

      异常处理代码块;

     }

    ......

     ......

     catch(异常类型异常对象名)

     {

      异常处理代码块;

     }//可有可无

     finally{

      //不管是否出现异常,都将执行finally中的语句
    }

 

当我们在使用这三个关键字时要注意以下几点:

第一、try语句不能单独存在,可以和catchfinally组成 try...catch...finallytry...catchtry...finally三种结构,catch语句可以有一个或多个,finally语句最多一个,trycatchfinally这三个关键字均不能单独使用。
第二、trycatchfinally三个代码块中变量的作用域分别独立而不能相互访问。如果要在三个块中都可以访问,则需要将变量定义到这些块的外面。
第三、多个catch块时候,Java虚拟机会匹配其中一个异常类或其子类,就执行这个catch块,而不会再执行别的catch块。

 

public static void main(String[] args) {
		 // TODO Auto-generated method stub 
		      int[] array = new int[]{1,2,3,4};
		    try
		      { 
		        System.out.println(array[4]); 
		     }
		   catch (NullPointerException e)
		    { 
			   System.out.println(e.toString()); 
		    }
		   catch (ArrayIndexOutOfBoundsException e)
		   {
			   System.out.println(e.getMessage()); e.printStackTrace(); 
		   }
		   finally 
		   { 
			   System.out.println("出现异常!"); 
		  }
	}
  

运行结果:

 4
java.lang.ArrayIndexOutOfBoundsException: 4
 at cn.netjava.lesson11.MyTest.main(MyTest.java:12)
出现异常!

 

2.使用throws ,throw

  throws将异常抛出,将异常交给Java虚拟机做,程序员不在需要自己对异常进行处理。使用格式为:throws 异常类型1,异常类型2......

  throw可用来自定义一个异常对象。 使用格式为:throw 异常对象

public static void main(String[] args) throws Exception 
	{ 
	  MyTest mt = new MyTest(); 
	  mt.creatfile() ;
	 }

    

 


 

 

public void creatfile() throws Exception{
		String str = "文件abc.txt";
		File file = new File(str);
		if (file.exists()) {
			long length = file.length();
			System.out.println("文件的长度是:" + length);
		} else {
				// 创建文件
				file.createNewFile();
				long length = file.length();
				System.out.println("文件创建成功!");
				System.out.println("文件的长度是:" + length+"byte");
		}
	}
	
 

 运行的结果:

文件创建成功!
文件的长度是:0byte

 

自定义异常

public class MyException extends Exception {

	public MyException(String message) {
		super(message);
	}
}
 

 

public static void main(String[] args) throws MyException {
		int i = 1 ;
		if(i == 0){
			throw new MyException("出现异常");
		}else {
			i-- ;
		}
	}
 

 

用throws声明方法可能抛出自定义的异常,并用throw语句在适当的地方抛出自定义的异常。

throw语句后不允许有紧跟其他语句,因为这些没有机会执行。

资源下载链接为: https://pan.quark.cn/s/22ca96b7bd39 在当今的软件开发领域,自动化构建与发布是提升开发效率和项目质量的关键环节。Jenkins Pipeline作为一种强大的自动化工具,能够有效助力Java项目的快速构建、测试及部署。本文将详细介绍如何利用Jenkins Pipeline实现Java项目的自动化构建与发布。 Jenkins Pipeline简介 Jenkins Pipeline是运行在Jenkins上的一套工作流框架,它将原本分散在单个或多个节点上独立运行的任务串联起来,实现复杂流程的编排与可视化。它是Jenkins 2.X的核心特性之一,推动了Jenkins从持续集成(CI)向持续交付(CD)及DevOps的转变。 创建Pipeline项目 要使用Jenkins Pipeline自动化构建发布Java项目,首先需要创建Pipeline项目。具体步骤如下: 登录Jenkins,点击“新建项”,选择“Pipeline”。 输入项目名称和描述,点击“确定”。 在Pipeline脚本中定义项目字典、发版脚本和预发布脚本。 编写Pipeline脚本 Pipeline脚本是Jenkins Pipeline的核心,用于定义自动化构建和发布的流程。以下是一个简单的Pipeline脚本示例: 在上述脚本中,定义了四个阶段:Checkout、Build、Push package和Deploy/Rollback。每个阶段都可以根据实际需求进行配置和调整。 通过Jenkins Pipeline自动化构建发布Java项目,可以显著提升开发效率和项目质量。借助Pipeline,我们能够轻松实现自动化构建、测试和部署,从而提高项目的整体质量和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值