欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

第十章

程序员文章站 2022-07-14 08:34:41
...
//第一种代码方式
public class DivByzero {	public static void main(String[] args) {		Scanner input = new Scanner(System.in);		
int x,y;		
System.out.println("请输入除数x");		
if(input.hasNextInt())		{		
	x = input.nextInt();	
		if(x==0)		{		
			System.out.println("除数为零,运算结果无穷大");		}		else 		{		
			y = 10/x;		
			System.out.println("10/x的结果为:");		}		}		else		{			
			System.out.println("你输入的结果不是整数类型!");					}		
			input.close();	}

使用if else 代码块,除了代码量的增加外还存在以下的缺点:
(1)程序员把大量的精力放在了异常的判断和处理上,没有更多的时间来处理实际的业务代码,降低了开发效率(2)异常代码与逻辑代码融合在一起,降低了程序的可读性,增加了修改和维护的难度(3)使用此代码块穷举的方法,很难把所有的情况都考虑到,程序还不够健壮。更改后:

public class DivByzero_2 {
	public static void main(String[] args) {		
		Scanner input = new Scanner(System.in);     
		  	int x,y;       
		  	System.out.println("输入除数:");    
		   try       {    	  	
	    x = input.nextInt();    	   	   
	     y = 10/x;    	  	 
	    System.out.println("10/x的结果是:");      	      }catch(Exception ex) {    		        
	   System.out.println("输入的数字必须是整数类型且不能为0");       }      
	     input.close();
	     	}}
 异常类对象包括关于异常的信息类型和错误发生时程序的状态,以及对该错误的详细描述

JAVA,通过API中“Hhrowable类的众多子类"”来描述各种不同的异常,因而JAVA异常都是对象,而Hhrowable子类的实例,描述了出现在一段代码中的错误条件,当条件成立时,错误将发生引发的异常。 Harowable类有两个子类:Exception(异常)类和Error(错误)类。 JAVA,程序用继承的方式来组织各种异常,所有的异常都是Hhrowable或其子类,而类又直接继承object类。 第十章第十章 (2)非运行时异常是RuntimeException以外的异常,类型上都属于Exception类及其子类 对于这种异常,JAVA编译器强制要求我们必须对出现的这些异常进行catch并处理,否则程序就不能编译通过。 异常类: 1)Exception类及其子类 可以被捕获,并且可能恢复得异常累,用户程序也可以通过继承Exception类来生成自己的异常类,常见的Exception异常内容下: <1> java. at. AWTException,抽象窗口工具包awt出现异常 <2>JAVA.nio.channels.AlreadyBoundException,尝试绑定已经绑定的网络套,接字时抛出的异常, <3>JAVA.util.zip.DataFormatException,数据格式错误异常 <4>JAVA.ioeofException在向文件写入数据的过程,意外地到达了文件或流操作结尾,这个异常主要用于使用流操作文件,使其他的输入操作时返回值,而不是抛出异常 <5>Java. ion. FileNotFoundException. 试图打开一个指定路径的文件时,引发的异常,当指定路径的文件不存在时而使用FilelnputaStream,FileOutStream或RandomAccessFile构造实力时就会抛出这个异常,如果这个文件确实存在,但是因为某些特殊的原因,如打开一个只读文件进行读写时,也会抛出这个异常。 <6>Java. net. HttpRetryException,当流媒体模式被启动,一个HTTP请求需要重新发送,却无法自动重发,而引发的异常 <7>java. net. MalformedURLException,统一资源定位器URL的格式不正确,引发的异常 <8>java. net. ProtocolException. 网络协议异常 <9>java. net. SocketException,Soket操作异常 <10>java lang. ArithmeticException,算术(如除数为零) 运算引发的异常。 <11>java. lang. ClassCastException. 类型转换异常 <12>java. lang. indexOutOfBoundsException下标越界异常 <13>java. lang. NullPointerException,访问一个空对象中的成员时引发的异常 <14>java. lang. NumberFormatException数据类型转换错误的异常 <15>java. util. InputMismatchException通过Scanner对象数的数据类型与接收数据的类型不匹配,而引发的异常 第十章第十章 3java. at. AWTError抽象窗口工具包awt发生严重错误,时而创建的错误信息对
第十章
catch代码块类似于方法的声明,包括一个异常类类型和该类型的一个实例,异常类必须是Hharowable类的子类用来指定catch语序要不或者异常异常类对象可以在catch代码块中被调用如调用对象的如调用对象的printStackaTrace().方法将异常信息打印显示到指定的对象中去

相关标签: 笔记