java之------ 异常处理

import java.util.*;
import java.text.*;
class ChineseDate{
  private Calendar aday;
  public ChineseDate(int year, int month,int day)throws MyDateException{
  	//this.aday= new Calendar();//不行,因为Calendar是抽象类
  	//this();
  	this.aday = Calendar.getInstance(); //※※※
  	this.set(year,month,day);
  }
  public ChineseDate(){
  	this.aday = Calendar.getInstance();
  }
  public void set(int year, int month, int day)throws MyDateException{//抛异常
  	//进行业务逻辑的合法性处理
  	if(year<=0 || year>2500){
  		throw new MyDateException("年份错误,有效年份为:0~2500。");
  	}
  	if(month<=0 || month>12){
  		throw new MyDateException("月份错误!");
  	}
  	if(day<=0 || day>daysOfMonth(year,month) ){
  		throw new MyDateException("日期错误");
  	}

  	this.aday.set(year,month-1,day); //※※※
  }

  public static boolean isLeapYear( int year ){
   	  boolean boo=year%400==0 || year%100!=0&&year%4==0;
   	  return boo;
   }
   public boolean isLeapYear(){
   	  return this.isLeapYear(aday.get(Calendar.YEAR));
   }

   public static int daysOfMonth(int year,int month){
     switch(month){
     	  case 1: case 3: case 5: case 7: case 8: case 10: case 12: return 31;
     	  case 4: case 6: case 9: case 11: return 30;
     	  case 2: return isLeapYear(year)? 29:28;
     	  default: return 0;
     }
   }
   /* //※※※
   public int daysOfMonth(){
   	  return daysOfMonth(aday.get(Calendar.YEAR),aday.get(Calendar.MONTH));
   }
   */

  public String toString(){
  	return new SimpleDateFormat("yyyy年MM月dd日 EEEEE a hh 时 mm 分 ss 秒").format( new Date(aday.getTimeInMillis()) );
  }

   public static void main(String args[]){

  	try{//接异常 ,异常处理
  		System.out.println( new ChineseDate(2015,1,23) );
  	}catch(MyDateException e){
  		System.out.println("aaaa----:"+e.toString() );
  			if(e.toString().equals("年份错误,有效年份为:0~2500。")){
  			    System.out.println("发现年份出错的异常,进行相应处理....");
  			}
  			if(e.toString().equals("月份错误!")){
  			    System.out.println("发现月份出错的异常,进行相应处理....");
  			}
  			if(e.toString().equals("日期错误")){
  			    System.out.println("发现日期出错的异常,进行相应处理....");
  			}
  	}catch(Exception e){
  		e.printStackTrace();
  	}

  	System.out.println("我很好...");

  }
}
时间: 2024-11-08 08:07:11

java之------ 异常处理的相关文章

Java学习--异常处理及其应用类

异常是运行时在代码序列中引起的非正常状况,换句话说,异常是运行时错误.在不支持异常处理的计算机语言中,必须手动检查和处理错误----通常是通过使用错误代码,等等.这种方式既笨拙又麻烦.Java的异常处理避免了这些问题,并且在处理过程中采用面向对象的方式管理运行时错误. 1.异常处理的基础概念 Java异常是用来描述在一段代码中发生的异常情况(也就是错误)的对象.当出现引起异常的情况时,就会创建用来表示异常的对象,并在引起错误的方法中抛出异常的对象.方法可以选择自己处理异常,也可以继续传递异常.无

java的异常处理

架构:java的异常处理是一种你丢我捡的架构 处理方法:在该方法加上异常处理语句来处理,另外一种是把异常交给另外的方法来处理 异常的实例对象throwble类: error和exception 前者无法处理,程序直接终止运行,后者异常可以采取措施处理 exception类:arithmeticexception 数学运算产生的错误,例如除以0  :arrayindexoutofboundsexception 数组索引小于0或者是超出数组边界产生的异常:arraystoreexception 保存

二:Java之异常处理

一.异常的概念 异常,也就是非正常情况.事实上,异常本质上是程序上的错误,包括程序逻辑错误和系统错误.错误在我们编写程序的过程中会经常发生,包括编译期间和运行期间的错误,在编译期间出现的错误有编译器帮助我们一起修正,然而运行期间的错误便不是编译器力所能及了.假若程序在运行期间出现了错误,如果置之不理,程序便会终止或直接导致系统崩溃,显然这不是我们希望看到的结果.因此,如何对运行期间出现的错误进行处理和补救呢?Java提供了异常机制来进行处理,通过异常机制来处理程序运行期间出现的错误.通过异常机制

java:异常处理

异常:编译正常,但运行出错,会中断正常指令流 RuntimeException:运行时异常 分为:uncheck exception.和check exception(除了RuntimeException以及子类以外的) uncheck exception class Test { public static void main(String args[]){ System.out.println("1"); int i = 1/0; System.out.println("

Java IO: 异常处理

原文链接 作者:Jakob Jenkov 译者: 李璟([email protected]) 流与Reader和Writer在结束使用的时候,需要正确地关闭它们.通过调用close()方法可以达到这一点.不过这需要一些思考.请看下边的代码: 01 InputStream input = new FileInputStream("c:\\data\\input-text.txt"); 02   03 int data = input.read(); 04   05 while(data

Java入门 异常处理

Java入门 异常处理 1.处理异常(try-catch以及try-catch-finally): a)try会抛出很多种类型的异常-多重catch块的处理 eg:try{ //一些会抛出异常的方法 }catch(Exception e){ //处理该异常的代码块 }catch(Exception2 e){ //处理Exception2的代码块 }..(n个catch块)..{ }finally{ //最终将要执行的代码 } 注意:顺序问题-按照从小到大,先子类后父类的顺序 e.g:InputM

【java读书笔记】——java的异常处理

程序在实际环境的运行过程中,安全成为需要首先考虑的重要因素之一,这也是用户和程序员最关心的问题.同时,Java语言健壮性也体现在了能够及时有效地处理程序中的错误,准确的说是Java的异常处理机制为解决安全问题提交了一份满意的答卷. 先从整体上看一下本文要介绍的内容,然后进行详细的分析: 1.异常的概念 异常又称为例外,是特殊的运行错误对象,对应着Java语言特定的运行错误处理机制. 上面的概念是书本上说的,下面我谈一下自己的看法 其实异常处理机制提供了统一的机制来识别和响应程序错误,异常可以为我

java的异常处理机制(try…catch…finally)

1 引子try…catch…finally恐怕是大家再熟悉不过的语句了,而且感觉用起来也是很简单,逻辑上似乎也是很容易理解.不过,我亲自体验的“教训”告诉我,这个东西可不是想象中的那么简单.听话.不信?那你看看下面的代码,“猜猜”它执行后的结果会是什么?不要往后看答案.也不许执行代码看真正答案哦.如果你的答案是正确,那么这篇文章你就不用浪费时间看啦.public class TestException{    public TestException()    {    }    boolean

java之八 异常处理

异常处理基础 Java异常是一个描述在代码段中发生的异常(也就是出错)情况的对象.当异常情况发生,一个代表该异常的对象被创建并且在导致该错误的方法中被引发(throw).该方法可以选择自己处理异常或传递该异常.两种情况下,该异常被捕获(catch)并处理.异常可能是由Java运行时系统产生,或者是由你的手工代码产生.被Java引发的异常与违反语言规范或超出Java执行环境限制的基本错误有关.手工编码产生的异常基本上用于报告方法调用程序的出错状况. Java异常处理通过5个关键字控制:try.ca

Java 六种异常处理的陋习(转)

Java 六种异常处理的陋习 原文链接: http://www.cnblogs.com/Android-and-android/archive/2013/05/02/3054469.html 你觉得自己是一个Java专家吗?是否肯定自己已经全面掌握了Java的异常处理机制?在下面这段代码中,你能够迅速找出异常处理的六个问题吗? 1 OutputStreamWriter out = ... 2 java.sql.Connection conn = ... 3 try { // ⑸ 4 Statem