A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 文胜平 中级黑马   /  2012-3-9 01:28  /  2416 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

tra{xxx}
catch{xxx}
System.out.print(xxx);


什么时候运行System.out.print(xxx);
什么时候不运行。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

5 个回复

倒序浏览
try{xxx}       //这里面放异常的代码
catch{xxx}   // 这里面放捕获后处理的代码
System.out.print(xxx);   
比如你有异常的代码  try了异常代码  而且也捕获处理了,系统就会认为你处理了异常代码  这时候就会执行
System这句   

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
贠(yun)靖 发表于 2012-3-9 04:22
try{xxx}       //这里面放异常的代码
catch{xxx}   // 这里面放捕获后处理的代码
System.out.print(xxx);  ...

一旦异常了 后面代码就不执行了吧
捕获了只是过了编译那关而已呵呵
回复 使用道具 举报
来个详细点的,微软的解释 :

try 块包含可能导致异常的保护代码。该块一直执行到引发异常或成功完成为止。例如,下列强制转换 null 对象的尝试引发 NullReferenceException 异常:

object o2 = null;
try
{
    int i2 = (int)o2;   // Error
}

catch 子句使用时可以不带任何参数,这种情况下它捕获任何类型的异常,并被称为一般 catch 子句。它还可以接受从 System.Exception 派生的对象参数,这种情况下它处理特定的异常。例如:

catch (InvalidCastException e)
{
}
在同一个 try-catch 语句中可以使用一个以上的特定 catch 子句。这种情况下 catch 子句的顺序很重要,因为会按顺序检查 catch 子句。将先捕获特定程度较高的异常,而不是特定程度较小的异常。

在 catch 块中可以使用 throw 语句再次引发已由 catch 语句捕获的异常。例如:
catch (InvalidCastException e)
{
    throw (e);    // Rethrowing exception e
}

如果要再次引发当前由无参数的 catch 子句处理的异常,则使用不带参数的 throw 语句。例如:

catch
{
    throw;
}

在 try 块内部时应该只初始化其中声明的变量;否则,完成该块的执行前可能发生异常。例如,在下面的代码示例中,变量 x 在 try 块内初始化。试图在 Write(x) 语句中的 try 块外部使用此变量时将产生编译器错误:使用了未赋值的局部变量。
static void Main()
{
    int x;
    try
    {
        // Don't initialize this variable here.
        x = 123;
    }
    catch
    {
    }
    // Error: Use of unassigned local variable 'x'.
    Console.Write(x);
}

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
都可以执行!
回复 使用道具 举报
简单地说
try了无异常,System.out.print(xxx);执行
有异常,catch到了,System.out.print(xxx);执行
catch不到,不执行
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马