try

try catch 自定义捕获异常

£可爱£侵袭症+ 提交于 2020-01-18 02:00:06
首先创造一个MyException类,继承自Exception类 代码实现如下: 继承自Exception类,在MyException的方法中调用父类的方法,返回错误的提示信息。 1 public class MyException extends Exception { 2 3 public MyException(String message) { 4 super(message); 5 } 6 } 使用该类判断录入的字符是否是正整数类型,如果不是,返回相关的错误信息;否则根据相关的条件返回成绩的评定等级。 使用try catch时,在代码产生的异常可以被throw语句抛出并被catch语句捕获。(必须被抛出才能被捕获) 必须将可能存在异常的代码放在try代码块内,才能捕获可能抛出的异常。一个try类可以对应一个或者多个catch类,一但抛出的异常被一个catch捕获,其他就不会执行。 1 import java.util.Scanner; 2 3 public class students { 4 static Scanner sc=null; 5 6 static int check(String c) throws MyException { 7 if(!c.matches("^\\-?[0-9]+$")) { //匹配所有的整数 8 throw new

java异常处理之throw, throws,try和catch

陌路散爱 提交于 2020-01-18 01:59:32
转自 http://blog.csdn.net/zhouyong80/article/details/1907799 程序运行过程中可能会出现异常情况,比如被0除、对负数计算平方根等,还有可能会出现致命的错误,比如内存不足,磁盘损坏无法读取文件等,对于异常和错误情况的处理,统称为异常处理。 Java 异常处理主要通过5个关键字控制:try、catch、throw、throws和finally。try的意思是试试它所包含的代码段中是否会发生异常;而catch当有异常时抓住它,并进行相应的处理,使程序不受异常的影响而继续执行下去;throw是在程序中明确引发异常;throws的作用是如果一个方法可以引发异常,而它本身并不对该异常处理,那么它必须将这个异常抛给调用它的方法;finally是无论发不发生异常都要被执行的代码 关键字:throw,throws,try和catch的用法如下: 1、throws出现在方法的声明中,表示该方法可能会抛出的异常,允许throws后面跟着多个异常类型 2、throw出现在方法体中,用于抛出异常。当方法在执行过程中遇到异常情况时,将异常信息封装为异常对象,然后throw。 3、try出现在方法体中,它自身是一个代码块,表示尝试执行代码块的语句。如果在执行过程中有某条语句抛出异常,那么代码块后面的语句将不被执行。 4、catch出现在try代码块的后面

try-catch和throw,throws的区别和联系

浪子不回头ぞ 提交于 2020-01-18 01:55:59
区别一: throw 是语句抛出一个异常;throws 是方法抛出一个异常; throw语法:throw <异常对象> 在方法声明中,添加throws子句表示该方法将抛出异常。如果一个方法会有异常,但你并不想处理这个异常,就在方法名后面用throws,这样这个异常就会抛出,谁调用了这个方法谁就要处理这个异常,或者继续抛出. throws语法:[<修饰符>]<返回值类型><方法名>([<参数列表>])[throws<异常类>] 其中:异常类可以声明多个,用逗号分割。 区别二:throw要么和try-catch-finally语句配套使用,要么与throws配套使用。但throws可以单独使用,然后再由处理异常的方法捕获。 联系一: try .... catch 就是用 catch 捕获 try 中的异常,并处理; catch 是捕获异常。也就是说某一个操作有可能会抛出什么异常。 throw 就是不处理异常,直接抛出异常 调用一个会 throws exception 的方法(在方法定义的时候可以用 throws 实现)时,需要把这个方法放在 try 里,然后用 catch 破获这个 exception ,做相应的处理。 throw new exception ()是抛出一个 exception ,由别的 method 来破获它。 也就是说 try....catch 是为破获别人的

java中的异常以及 try catch finally以及finally的执行顺序

谁说我不能喝 提交于 2020-01-18 01:55:06
java中的 try、catch、finally及finally执行顺序详解: 1、首相简单介绍一下异常以及异常的运行情况: 在 Java 中异常的继承主要有两个: Error和Exception 这两个,而Error就是jvm出现错误,以及系统奔溃等现象这些错误没办法通过程序来处理,所以在程序中不能使用catch来捕捉处理这类的异常。 对于Exception 又可以分为checkedException 和RuntimeException 这两种异常,checkedException异常在进行编译运行之前就可以知道会不会发生异常,如果不对这些异常进行抛出、捕获的话就不能通过编译。而RuntimeException就是运行的时候出现的异常在之前你是没办法确定是不是会出现异常。 异常处理过程: 把会出项异常的程序段放在try中,当抛出异常的时候就会系统会生成一个异常对象,然后进行查找捕获这个异常然后进行处理这个异常,处理之后接着执行下面的程序。 出现异常之后如果没有进行捕获处理系统就会直接将这个异常栈的跟踪信息直接打印出来之后就结束这个程序的执行。 2、为什么要用finally 先看一个没有finally的异常处理try-catch语句: 假设count为要使用到的资源,并且用完要求释放此资源。那么我们可以把释放资源的语句放到try-catch后执行

[ Java学习基础 ] Java异常处理

故事扮演 提交于 2020-01-18 01:07:53
一、异常概述      异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。比如说,你的代码少了一个分号,那么运行出来结果是提示是错误 java.lang.Error;如果你用System.out.println(11/0),那么你是因为你用0做了除数,会抛出 java.lang.ArithmeticException 的异常。   异常发生的原因有很多,通常包含以下几大类: 用户输入了非法数据。 要打开的文件不存在。 网络通信时连接中断,或者JVM内存溢出。   这些异常有的是因为用户错误引起,有的是程序错误引起的,还有其它一些是因为物理错误引起的,为增强程序的健壮性,计算机程序的编写也需要考虑处理这些异常情况,Java语言提供了异常处理功能,本文将介绍Java异常处理机制。   为了更好的理解和学习Java异常处理机制,首先看看下面程序: //HelloWorld.java文件 package com.Kevin; public class HelloWorld { public static void main(String[] args) { int a = 0; System.out.println(5 / a); } } 这个程序没有编译错误,但会发生如下的运行时错误: Exception in thread "main" java.lang

Java异常处理

不问归期 提交于 2020-01-18 00:42:04
六种异常处理的陋习 你觉得自己是一个Java专家吗?是否肯定自己已经全面掌握了Java的异常处理机制?在下面这段代码中,你能够迅速找出异常处理的六个问题吗? 1 OutputStreamWriter out = ... 2 java.sql.Connection conn = ... 3 try { // ⑸ 4  Statement stat = conn.createStatement(); 5  ResultSet rs = stat.executeQuery( 6   "select uid, name from user"); 7  while (rs.next()) 8  { 9   out.println("ID:" + rs.getString("uid") // ⑹ 10    ",姓名:" + rs.getString("name")); 11  } 12  conn.close(); // ⑶ 13  out.close(); 14 } 15 catch(Exception ex) // ⑵ 16 { 17  ex.printStackTrace(); //⑴,⑷ 18 }   作为一个Java程序员,你至少应该能够找出两个问题。但是,如果你不能找出全部六个问题,请继续阅读本文。   本文讨论的不是Java异常处理的一般性原则,因为这些原则已经被大多数人熟知

java异常总结

家住魔仙堡 提交于 2020-01-17 23:08:07
异常: 是什么?是对问题的描述。将问题进行对象的封装 异常体系 Throwable ---Error ---Exception ---RunTimeException 异常体系的特点:异常体系中的所有类以及建立的对象都具备可抛性。 也就是说,能够被throw和throws关键字所操作。 只有异常体系具备这个特点。 throw和throws的用法 throw定义在函数内,用于抛出异常对象 throws定义在函数上,用于抛出异常类,可以抛出多个逗号隔开 当函数内容有throw抛出异常对象,并未进行try处理,必须在函数上声明,否则编译失败 注意:RunTimeException异常除外,也就是说,函数内如果抛出的RunTimeException异常,函数上可以不用声明 如果函数声明了异常,调用者需要进行处理。处理方式可throw可try。 异常有两种: 编译时被检测异常 该异常在编译时,如果没有处理(没有抛也没有try),编译失败 该异常被标识,代表着可以被处理 运行时异常(编译时不检测) 在编译时,不需要处理,编译器不检查 该异常的发生,建议不处理,让程序停止,需要对代码修正。 异常处理语句: try { 需要被检测的代码; } catch() { 处理异常的代码; } finally { 一定会执行的代码; } 有三种结合格式 1. try { } catch() { } 2.

异常-笔记-01

流过昼夜 提交于 2020-01-17 21:05:25
一.使用try-catch捕获单个异常 如果异常出现的话,会立即终止程序,我们得处理异常: 1) :该方法不处理,而是声明抛出,由该方法的调用者来处理,(throws) 2) :在方法中使用try-catch的语句块来处理异常- 使用try-catch捕获单个异常: 语法如下: try{ 编写可能会出现异常的代码 }catch(异常类型 e){ 处理异常的代码 //记录日志/打印日常信息,继续抛出异常 } 注意 :catch 和try都不能单独使用 二.获取和查看异常信息 1) :String getMessage(): 获取异常的描述信息,原因 2) String toString():获取异常的类型和异常描述的信息(一般不用) 3) :void printStackTrace():打印异常的跟踪栈信息并输出到控制台.不需要使用System 包含了异常的类型.异常的原因,还包括了异常出现的位置,在开发调试阶段,都得使用printStackTrace 现在在catch语句块中,必须写: e.printStackTrace(); 目的:查看异常的具体信息,方便调试和修改. 三.使用try-catch捕获 多个 异常 try{ 编写可能会出现异常的代码 }catch( 异常类型 A e){当try中出现A类型异常,就用该catch来捕获 处理异常的代码1 //记录日志/打印日常信息

try、catch、finally中的return由谁决定

夙愿已清 提交于 2020-01-17 08:04:30
先上一个栗子: public class Test { public int add ( int a , int b ) { try { return a + b ; } catch ( Exception e ) { System . out . println ( "catch语句块" ) ; } finally { System . out . println ( "finally语句块" ) ; } return 0 ; } public static void main ( String argv [ ] ) { Test test = new Test ( ) ; System . out . println ( "和是:" + test . add ( 9 , 34 ) ) ; } } /**结果: finally语句块 和是:43 */ 在try语句中已经有了return,理应输出的结果是: 和是:43 finally语句块 不过却不是这样的。我深入的剖析了下: 当程序执行到try{}语句中的return方法时,它会干这么一件事,将要返回的结果存储到一个临时栈中,然后程序不会立即返回,而是去执行finally{}中的程序, 在执行时,程序仅仅是覆盖了try中的值,但不会去更新临时栈中的那个要返回的值 。执行完之后,就会通知主程序“finally的程序执行完毕

Java(异常处理)动手动脑

隐身守侯 提交于 2020-01-17 05:23:04
1> 请阅读并运行 AboutException.java 示例,然后通过后面的几页PPT了解Java中实现异常处理的基础知识。 import javax.swing.*; class AboutException { public static void main(String[] a) { float i=1, j=0, k; k=i/j; System.out.println(k); try { k = i/j; // Causes division-by-zero exception //throw new Exception("Hello.Exception!"); } catch ( ArithmeticException e) { System.out.println("被0除. "+ e.getMessage()); } catch (Exception e) { if (e instanceof ArithmeticException) System.out.println("被0除"); else { System.out.println(e.getMessage()); } } finally { JOptionPane.showConfirmDialog(null,"OK"); } } } 异常处理: Java中异常捕获语句 try