㈠ 通常java是如何处理异常的

Java处理异常的方式和C++等语言类似,使用try-catch-finally语句,例子如下:
try{ //产生异常的回语句编写在try语句块中。
int[] num={1,2,3,4};
System.out.println(num[4]);
}catch(Exception e){ //处理具答体异常的代码编写在catch语句块中。
e.printStackTrace();
}finally{ //资源释放代码编写在finally语句块中。
System.out.println(“总是运行!”);
}
更加具体的异常处理方法,你可以参考秒秒学的相关课程。上面列举了异常的用法,和相关的异常类。

㈡ Java中,如何进行异常处理

异常
exception
不是
错误
error
异常又分为运行时异常(runtimeexception)和编译时异常(checkedexception)
checkedexception
是非人为原因的而造成的不可避免的异常,比如
ioexception

sqlexception
等。
这些必须要用
thr{}catch
来捕获或者
throws。必须抛出,因为在编译的时候jvm会检查,如果不抛出,则编译不能通过。
简单举例来说,我用了
java.io.*
用了java
文件流的输入输出,就会产生不可预见的异常,假如,文件不存在,假如,流,读写失败等,这些不可预见的问题,如果不捕获并且忽略这些异常或者对异常进行相应的处理,也许会造成整个程序的崩溃,甚至有可能造成jvm的崩溃。所以,在编译时,jvm就会检查这些可能会造成异常的代码,是否对异常进行了捕获和处理。
而运行时异常,是程序员自己的错误而造成的,比如下标越界,这些问题在写代码的时候程序员自己就可以处理,是可预见的异常。编译时
jvm不会检查

㈢ 详细描述java是如何处理异常的

当出现程序无法控制的外部环境问题(用户提供的文件不存在,文件内容损坏,网络不可用...)时,JAVA就会用异常对象来描述。
JAVA中用2种方法处理异常:
1.在发生异常的地方直接处理;
2.将异常抛给调用者,让调用者处理。
JAVA异常可分为3种:
(1)检查性异常:java.lang.Exception
(2)运行期异常:java.lang.RuntimeException
(3)错误:java.lang.Error
顶层是java.lang.Throwable类,检查性异常,运行期异常,错误都是这个类的子孙类。
java.lang.Exception和java.lang.Error继承自java.lang.Throwable,而java.lang.RuntimeException继承自java.lang.Exception.
检查性异常------程序正确,但因为外在的环境条件不满足引发。例如:用户错误及I/O问题----程序试图打开一个并不存在的远程Socket端口。这不是程序本身的逻辑错误,而很可能是远程机器名字错误(用户拼写错误)。对商用软件系统,程序开发者必须考虑并处理这个问题。JAVA编译器强制要求处理这类异常,如果不捕获这类异常,程序将不能被编译。
运行期异常------这意味着程序存在bug,如数组越界,0被除,入参不满足规范.....这类异常需要更改程序来避免,JAVA编译器强制要求处理这类异常。
错误------一般很少见,也很难通过程序解决。它可能源于程序的bug,但一般更可能源于环境问题,如内存耗尽。错误在程序中无须处理,而有运行环境处理。
如何处理异常?
1.try...catch
程序运行产生异常时,将从异常发生点中断程序并向外抛出异常信息。
Java代码
int x = (int)(Math.random()*5);
int y = (int)(Math.random()*10);
int[] z =new int[5];
try
{
System.out.println("y/x="+(y/x));
System.out.println("y="+y+"z[y]="+z[y]);
}
catch (ArithmeticException exc1)
{
System.out.println("算术运算异常:"+exc1.getMessage());
}
catch ( exc2)
{
System.out.println("数据越界异常:"+exc2.getMessage());
}
说明:ArithmeticException和都属运行期异常:java.lang.RuntimeException,如果不用try...catch捕获,程序也是可通过编译的,但如果属于检查性异常:java.lang.Exception,必须而且一定要用try...catch...对其进行处理。
2.finally
如果把finally块置try...catch...语句后,finally块一般都会得到执行,它相当于一个万能的保险,即使前面的try块发生异常,而又没有对应异常的catch块,finally块将马上执行。
以下情形,finally块将不会被执行:
(1)finally块中发生了异常;
(2)程序所在线程死亡;
(3)在前面的代码中用了System.exit();
(4)关闭CPU。
3.多个异常的处理规则:
定义多个catch可精确地定位异常。如果为子类的异常定义了特殊的catch块,而父类的异常则放在另外一个catch块中,此时,必须满足以下规则:子类异常的处理块必须在父类异常处理块的前面,否则会发生编译错误。所以,越特殊的异常越在前面处理,越普遍的异常越在后面处理。这类似于制订防火墙的规则次序:较特殊的规则在前,较普通的规则在后。
自己也可以定义并抛出异常,方法是2步:创建异常,抛出异常(首先实例化一个异常对象,然后用thow抛出)合在一起就是----
thow new IOException("异常说明信息")。将创建异常,抛出异常合在一起的好处是:创建异常时,会包含异常创建处的行信息,异常被捕获时可以通过堆栈迹(stack Trace)的形式报告这些信息。如果在同一行代码创建和抛出异常,对于程序的调试将非常有用。
所以,thow new XXX()已经成为一个标准的异常抛出范式。
在定义一个方法时,方法块中调用的方法可能会抛出异常,可用上面的thow new XXX()处理,如果不处理,那么必须在方法定义时,用thows声明这个方法会抛出的异常。
对异常的处理,有一条行之有效的默认规则:向上抛出-----被调用类在运行过程中对遇到的异常一概不作处理,而是直接向上抛出,一直到最上层的调用类,调用类根据应用系统的需求和特定的异常处理规则进行处理,如向控制台输出异常堆栈信息,打印在日志文件中。用一句形象的话来说,就是谁使用,谁(最上层的调用类)处理。

㈣ java中 方法中抛出异常处理方法

Java语言提供两种异常处理机制:捕获异常和声明抛弃异常。

1、捕获异常:

(1)在Java程序运行过程中系统得到一个异常对象是,它将会沿着方法的调用栈逐层回溯,寻找处理这一异常的代码。

(2)找到能够处理这种类型异常的方法后,运行时系统把当前异常交给这个方法处理;如果找不到可以捕获异常的方法,则运行时系统将终止,相应的Java程序也将退出。

(3)捕获异常是通过try-catch-finally语句实现的。语法为:

try{

...

}catch(ExceptionName1 e){

...

}catch(ExceptionName2 e){

...

}

...

}finally{

...

}

2、声明抛弃异常:

(1)当Java程序运行时系统得到一个异常对象时,如果一个方法并不知道如何处理所出现的异常,则可在方法声明时,声明抛弃异常。

(2)声明抛弃异常是在一个方法声明中的throws子句中指明的。如:

public int read() throws IOException{

...

}

其中throws IOException就是声明抛弃异常,throws后可以跟多个异常类型。

(4)处理异常java扩展阅读:

程序设计语言的异常机制:

1、多数语言的异常机制的语法是类似的:用throw或raise抛出一个异常对象(Java或C++等)或一个特殊可扩展的枚举类型的值(如Ada语言);

2、异常处理代码的作用范围用标记子句(try或begin开始的语言作用域)标示其起始,以第一个异常处理子句(catch, except, resuce等)标示其结束;可连续出现若干个异常处理子句,每个处理特定类型的异常。

3、某些语言允许else子句,用于无异常出现的情况。更多见的是finally, ensure子句,无论是否出现异常它都将执行,用于释放异常处理所需的一些资源。

(1)C++异常处理是资源获取即初始化(Resource-Acquisition-Is-Initialization)的基础。

(2)C语言一般认为是不支持异常处理的。Perl语言可选择支持结构化异常处理(structured exception handling)。

(3)Python语言对异常处理机制是非常普遍深入的,所以想写出不含try, except的程序非常困难。

参考资料来源:

网络-异常处理

㈤ Java是怎样处理异常问题的

第一:try{}catch{}捕捉异常处理。
try语句里面实现的是主事件流,而catch里面实现的是异常流。
自定义大量的Exception类,只是代表非主事件流的发生的,用来进行那些分支流程的流程控制的。
在异常捕获后返回一个变量,该变量参与正常的业务流程。
第二:业务层处理业务时抛出异常,下次处理。(会影响性能)
返回变量是一种做法;抛出异常是一种做法。
而不是两者都用,返回变量是面向过程的编程方法;抛出异常更OO。

㈥ java中如何处理多种异常

publicclassTryCatchTest3
{
publicvoidmethod()
{
System.out.println("调用类回中的方法");
}
publicstaticvoidmain(String[]args)
{
TryCatchTest3txt=null;
int[]is=newint[3];
try
{
txt.method();
is[3]=5;
}
catch(NullPointerExceptione)
{
System.out.println("发生空指答针异常");
}
catch()
{
System.out.println("发生数组越界异常");
}
}
}

给你个例子。

㈦ JAVA中处理异常(try catch)的快捷键是什么

您好,提问者:
在Eclipse跟MyEclipse中输入try同时按住Alt+/就出来了。

㈧ Java异常处理

Animals类实现了接口Animalsface,override了showAnimals()方法,方法override的原则要求,不允许抛出比父类或接口方法更多的异常,所以编译不通过

㈨ java如何处理异常

抛出或者捕获

㈩ Java对异常如何进行判断和处理

try{
//操作源数据库代码

}catch(Exception e){
if(e.getMessage().indexOf("U_TEACHER")>0){
System.out.println("是关于违反Oracle一个唯一性约束U_TEACHER");

}else if(e.getMessage().indexOf("U_ROOM")>0){
System.out.println("是关于违反Oracle一个唯一性约束U_ROOM");

}

}