![](https://iknow-base.cdn.bcebos.com/lxb/notice.png)
小白问JAVA考题
看程序写结果classTest3{publicstaticvoidmain(String[]args){try{callMethod();}catch(Exception...
看程序写结果
class Test3
{
public static void main(String []args){
try
{
callMethod();
}
catch(Exception e)
{
System.out.print("will");
}
System.out.println("win");
}
static void createException()
{
throw new ArithmeticException();
}
static void callMethod()
{
try
{
createException();
System.out.print("not");
}
catch(ArrayIndexOutOfBoundsException e)
{
System.ou.print("you");
}
finally
{
System.out.print("I");
}
System.out.print("never");
}
输出的结果是什么?为什么?
请详细说明,感激不尽 展开
class Test3
{
public static void main(String []args){
try
{
callMethod();
}
catch(Exception e)
{
System.out.print("will");
}
System.out.println("win");
}
static void createException()
{
throw new ArithmeticException();
}
static void callMethod()
{
try
{
createException();
System.out.print("not");
}
catch(ArrayIndexOutOfBoundsException e)
{
System.ou.print("you");
}
finally
{
System.out.print("I");
}
System.out.print("never");
}
输出的结果是什么?为什么?
请详细说明,感激不尽 展开
展开全部
createException()方法在执行的时侯会抛出一个 ArithmeticException异常 但是 callMethod()
方法的捕获的时侯却捕获的是个ArrayIndexOutOfBoundsException
异常 ,这个方法的也抛出了一个异常 ,但是里面有一是finally 所里面的I被 打印,callMethod()抛出的异常被 Exception 这个对像接收所以会打印will这个和下面的win
方法的捕获的时侯却捕获的是个ArrayIndexOutOfBoundsException
异常 ,这个方法的也抛出了一个异常 ,但是里面有一是finally 所里面的I被 打印,callMethod()抛出的异常被 Exception 这个对像接收所以会打印will这个和下面的win
展开全部
public class testFinally {
public static int test(){
try{
System.out.println("try");
}catch(Exception exp){
System.out.println("catch");
return 0;
}finally{
System.out.println("finally");
}
System.out.println("after finally");
return 1;
}
public static void main(String[] args) {
System.out.println(test());
}
}
运行结果:
try
finally
after finally
1
结论1:当try里面的代码没有异常的时候,会执行该try块对应的finally块,并继续执行finally之后的代码
public class testFinally {
public static int test(){
try{
System.out.println("try");
int i = 0;
int r = 7/i;
}catch(Exception exp){
System.out.println("catch");
return 0;
}finally{
System.out.println("finally");
//return 2;
}
System.out.println("after finally");
return 1;
}
public static void main(String[] args) {
System.out.println(test());
}
}
运行结果:
try
catch
finally
0
结论2:当try里面的代码出现异常的时候,会执行该try块对应的catch块和finally块,且即使catch中有返回finally也是要执行。法调用是执行完finally中的语句,再返回catch中的return。
public class testFinally {
public static int test(){
try{
System.out.println("try");
int i = 0;
int r = 7/i;
}catch(Exception exp){
System.out.println("catch");
return 0;
}finally{
System.out.println("finally");
return 2;
}
}
public static void main(String[] args) {
System.out.println(test());
}
}
运行结果:
try
catch
finally
2
结论3:相对于结论2,finally中如果有return的情况,那么即使catch中有return,这个return也不起作用,该方法调用要到finally中的return才返回
public class testFinally {
public static int test(){
try{
System.out.println("try");
int i = 0;
int r = 7/i;
}catch(Exception exp){
System.out.println("catch");
return 0;
}finally{
System.out.println("finally");
return 2;
}
System.out.println("after finally");
return 1;
}
public static void main(String[] args) {
System.out.println(test());
}
}
编译不通过
System.out.println("after finally");
return 1;
为unreachable statement
public static int test(){
try{
System.out.println("try");
}catch(Exception exp){
System.out.println("catch");
return 0;
}finally{
System.out.println("finally");
}
System.out.println("after finally");
return 1;
}
public static void main(String[] args) {
System.out.println(test());
}
}
运行结果:
try
finally
after finally
1
结论1:当try里面的代码没有异常的时候,会执行该try块对应的finally块,并继续执行finally之后的代码
public class testFinally {
public static int test(){
try{
System.out.println("try");
int i = 0;
int r = 7/i;
}catch(Exception exp){
System.out.println("catch");
return 0;
}finally{
System.out.println("finally");
//return 2;
}
System.out.println("after finally");
return 1;
}
public static void main(String[] args) {
System.out.println(test());
}
}
运行结果:
try
catch
finally
0
结论2:当try里面的代码出现异常的时候,会执行该try块对应的catch块和finally块,且即使catch中有返回finally也是要执行。法调用是执行完finally中的语句,再返回catch中的return。
public class testFinally {
public static int test(){
try{
System.out.println("try");
int i = 0;
int r = 7/i;
}catch(Exception exp){
System.out.println("catch");
return 0;
}finally{
System.out.println("finally");
return 2;
}
}
public static void main(String[] args) {
System.out.println(test());
}
}
运行结果:
try
catch
finally
2
结论3:相对于结论2,finally中如果有return的情况,那么即使catch中有return,这个return也不起作用,该方法调用要到finally中的return才返回
public class testFinally {
public static int test(){
try{
System.out.println("try");
int i = 0;
int r = 7/i;
}catch(Exception exp){
System.out.println("catch");
return 0;
}finally{
System.out.println("finally");
return 2;
}
System.out.println("after finally");
return 1;
}
public static void main(String[] args) {
System.out.println(test());
}
}
编译不通过
System.out.println("after finally");
return 1;
为unreachable statement
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
you win i never
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询