java中异常处理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中异常处理相关的知识,希望对你有一定的参考价值。

在做循环时,如果不做任何异常处理的话,一旦发生错误,程序将会停止,不会继续执行,这不会是我们想看到的结果。因此在加上try-catch处理后,程序遇到错误,会把错误抛出来,继续执行下一个循环。

这个是循环中没有处理异常

		for (TalkBean talkBean : list) {
			String talk_mjbh=talkBean.getTalk_mjbh();
			String talk_zfbh=talkBean.getTalk_zfbh();
			String audiofile=talkBean.getAudiofile();
			String remark=talkBean.getRemark();
			String talk_address=talkBean.getTalk_address();
			String talk_sub_type=talkBean.getTalk_sub_type();
			String talk_thpj=talkBean.getTalk_thpj();
			String talk_type=talkBean.getTalk_type();
		
			System.out.println("文件名称"+audiofile);
			Dto rowDto_f1 = Dtos.newDto();
			rowDto_f1.put("filename", audiofile);		
			int countInt_f1 = uploadmobilefileinfoMapper.rows(rowDto_f1);
			if (countInt_f1 == 1) {
				Code = "103";
				Codevalue = "重复上传录音文件。";			
			}
			
			Dto rowDto_p = Dtos.newDto();
			rowDto_p.put("biz_code_", talk_mjbh);
			rowDto_p.put("delete_flag_", "0");
			int countInt_p = aos_sys_userMapper.rows(rowDto_p);
			if (countInt_p == 0) {
				talk_mjbh="root";
			}
			
			Dto rowDto_c = Dtos.newDto();
			rowDto_c.put("zf_bh", talk_zfbh);
			rowDto_c.put("delete_flag_", "0");
			int countInt_c = xw_base_prisonerMapper.rows(rowDto_c);
	
		
			Xw_th_talkeduPO xw_th_talkeduPO = new Xw_th_talkeduPO();
			xw_th_talkeduPO.setId_(AOSId.uuid());
			xw_th_talkeduPO.setAudit_remark(remark);
			
			Dto qDto_p = Dtos.newDto();
			qDto_p.put("biz_code_", talk_mjbh);
			Dto police_Dto =   sqlDao.selectDto("Talk.getPoliceId", qDto_p);			
			String police_id = police_Dto.getString("id_");
			String org_id_ = police_Dto.getString("org_id_");
			
			Dto rowDto_c1 = Dtos.newDto();
			rowDto_c1.put("zf_bh", talk_zfbh);
			rowDto_c1.put("org_id_", org_id_);
			rowDto_c1.put("delete_flag_", "0");
			int countInt_c1 = xw_base_prisonerMapper.rows(rowDto_c1);
			if(countInt_c==0||countInt_c1 == 0){
				uploadstate="false";
				if (countInt_c1 == 0) { //如果不在一个监区,就把罪犯id设置为上传时读取到的罪犯编号
					xw_th_talkeduPO.setPrisoner_id(talk_zfbh);
					
				}
			}
			
			xw_th_talkeduPO.setCreator(police_id);
			xw_th_talkeduPO.setCreattime(AOSUtils.getDateTimeStr());
			xw_th_talkeduPO.setRemark(remark);
			xw_th_talkeduPO.setTalk_address(talk_address);
			xw_th_talkeduPO.setTalk_sub_type(talk_sub_type);
			xw_th_talkeduPO.setTalk_type(talk_type);
			xw_th_talkeduPO.setStatus("2");   
			xw_th_talkeduPO.setTalk_effect(talk_thpj);
			Aos_sys_orgPO aos_sys_orgPO = aos_sys_orgMapper.selectByKey(org_id_);
			xw_th_talkeduPO.setOrg_id_(org_id_);
			xw_th_talkeduPO.setOrg_cascade_id_(aos_sys_orgPO.getCascade_id_());
			xw_th_talkeduPO.setUploadstate(uploadstate);  
			 xw_th_talkeduPO.setPolice_id(police_id); 
			 
				if (countInt_c == 1) {
	   				Dto qDto = Dtos.newDto();
	   				qDto.put("zf_bh", talk_zfbh);
	   				String prisoner_id = (String) sqlDao.selectOne("Talk.getPrisonerId", qDto);				 
	   				System.out.println("prisoner_id是:"+prisoner_id);
	   				xw_th_talkeduPO.setPrisoner_id(prisoner_id);
	   			}
				String dateFormat = new SimpleDateFormat("yyyy年MM月dd日").format(new Date());	
				xw_th_talkeduPO.setTalk_date(dateFormat);
				xw_th_talkeduPO.setAudiofile(audiofile);
				
				xw_th_talkeduPO.setTime_length("0");
				
				xw_th_talkeduPO.setIsfrommobile("1");
				xw_th_talkeduPO.setTalk_means("1");
				xw_th_talkeduMapper.insert(xw_th_talkeduPO);			
				
				UploadmobilefileinfoPO uploadmobilefileinfoPO = new UploadmobilefileinfoPO();
				uploadmobilefileinfoPO.setId_(AOSId.uuid());
				uploadmobilefileinfoPO.setFilename(audiofile);
				uploadmobilefileinfoPO.setTime_(AOSUtils.getDateTimeStr());		
				uploadmobilefileinfoMapper.insert(uploadmobilefileinfoPO);
				Code = "success";
				Codevalue = "上传文件成功。";

			
		}

下面的是处理了异常,程序会继续往下执行

		for (TalkBean talkBean : list) {
			try {
				String talk_mjbh=talkBean.getTalk_mjbh();
				String talk_zfbh=talkBean.getTalk_zfbh();
				String audiofile=talkBean.getAudiofile();
				String remark=talkBean.getRemark();
				String talk_address=talkBean.getTalk_address();
				String talk_sub_type=talkBean.getTalk_sub_type();
				String talk_thpj=talkBean.getTalk_thpj();
				String talk_type=talkBean.getTalk_type();

				System.out.println("文件名称"+audiofile);
				Dto rowDto_f1 = Dtos.newDto();
				rowDto_f1.put("filename", audiofile);		
				int countInt_f1 = uploadmobilefileinfoMapper.rows(rowDto_f1);
				if (countInt_f1 == 1) {
					Code = "103";
					Codevalue = "重复上传录音文件。";			
				}
				
				Dto rowDto_p = Dtos.newDto();
				rowDto_p.put("biz_code_", talk_mjbh);
				rowDto_p.put("delete_flag_", "0");
				int countInt_p = aos_sys_userMapper.rows(rowDto_p);
				if (countInt_p == 0) {
					talk_mjbh="root";
				}
				
				Dto rowDto_c = Dtos.newDto();
				rowDto_c.put("zf_bh", talk_zfbh);
				rowDto_c.put("delete_flag_", "0");
				int countInt_c = xw_base_prisonerMapper.rows(rowDto_c);


				Xw_th_talkeduPO xw_th_talkeduPO = new Xw_th_talkeduPO();
				xw_th_talkeduPO.setId_(AOSId.uuid());
				xw_th_talkeduPO.setAudit_remark(remark);
				
				Dto qDto_p = Dtos.newDto();
				qDto_p.put("biz_code_", talk_mjbh);
				Dto police_Dto =   sqlDao.selectDto("Talk.getPoliceId", qDto_p);			
				String police_id = police_Dto.getString("id_");
				String org_id_ = police_Dto.getString("org_id_");
				
				Dto rowDto_c1 = Dtos.newDto();
				rowDto_c1.put("zf_bh", talk_zfbh);
				rowDto_c1.put("org_id_", org_id_);
				rowDto_c1.put("delete_flag_", "0");
				int countInt_c1 = xw_base_prisonerMapper.rows(rowDto_c1);
				if(countInt_c==0||countInt_c1 == 0){
					uploadstate="false";
					if (countInt_c1 == 0) { //如果不在一个监区,就把罪犯id设置为上传时读取到的罪犯编号
						xw_th_talkeduPO.setPrisoner_id(talk_zfbh);
						
					}
				}
				
				xw_th_talkeduPO.setCreator(police_id);
				xw_th_talkeduPO.setCreattime(AOSUtils.getDateTimeStr());
				xw_th_talkeduPO.setRemark(remark);
				xw_th_talkeduPO.setTalk_address(talk_address);
				xw_th_talkeduPO.setTalk_sub_type(talk_sub_type);
				xw_th_talkeduPO.setTalk_type(talk_type);
				xw_th_talkeduPO.setStatus("2");   
				xw_th_talkeduPO.setTalk_effect(talk_thpj);
				Aos_sys_orgPO aos_sys_orgPO = aos_sys_orgMapper.selectByKey(org_id_);
				xw_th_talkeduPO.setOrg_id_(org_id_);
				xw_th_talkeduPO.setOrg_cascade_id_(aos_sys_orgPO.getCascade_id_());
				xw_th_talkeduPO.setUploadstate(uploadstate);  
				 xw_th_talkeduPO.setPolice_id(police_id); 
				 
					if (countInt_c == 1) {
						Dto qDto = Dtos.newDto();
						qDto.put("zf_bh", talk_zfbh);
						String prisoner_id = (String) sqlDao.selectOne("Talk.getPrisonerId", qDto);				 
						System.out.println("prisoner_id是:"+prisoner_id);
						xw_th_talkeduPO.setPrisoner_id(prisoner_id);
					}
					String dateFormat = new SimpleDateFormat("yyyy年MM月dd日").format(new Date());	
					xw_th_talkeduPO.setTalk_date(dateFormat);
					xw_th_talkeduPO.setAudiofile(audiofile);
					
					xw_th_talkeduPO.setTime_length("0");
					
					xw_th_talkeduPO.setIsfrommobile("1");
					xw_th_talkeduPO.setTalk_means("1");
					xw_th_talkeduMapper.insert(xw_th_talkeduPO);			
					
					UploadmobilefileinfoPO uploadmobilefileinfoPO = new UploadmobilefileinfoPO();
					uploadmobilefileinfoPO.setId_(AOSId.uuid());
					uploadmobilefileinfoPO.setFilename(audiofile);
					uploadmobilefileinfoPO.setTime_(AOSUtils.getDateTimeStr());		
					uploadmobilefileinfoMapper.insert(uploadmobilefileinfoPO);
					Code = "success";
					Codevalue = "上传文件成功。";
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}

			
		}


记住,在可能出错的代码外面,包裹一层try-catch。

本文出自 “YuanGuShi” 博客,请务必保留此出处http://cm0425.blog.51cto.com/10819451/1934804

以上是关于java中异常处理的主要内容,如果未能解决你的问题,请参考以下文章

java 反射代码片段

异常和TCP通讯

java.util.MissingResourceException: Can't find bundle for base name init, locale zh_CN问题的处理(代码片段

java异常 throw和try-catch的关系

java.lang.NullPointerException: Attempt to invoke virtual method ‘int android.database.sqlite异常(代码片段

片段中的 EditText 上的空指针异常 [重复]