2

我需要将一个 xml 文件保存在一个目录中......如果它的格式不正确。只是为了分析失败的原因。

如何将 xml 请求保存在 catch 块中的目录中?

我试过这样做..但是在 try 块中创建的变量在 catch 块中似乎未定义。我是新手......对不起,如果它是一个基本问题。任何解决方案?

  try {
  Create a well formed xml request
  open a http connection and post it
   }
  //catching all exceptions here
  catch (Exception e) {

  e.printStackTrace();
  }
4

4 回答 4

3

{} 大括号限定了 try 块内的变量,因此它们在该范围之外不可用你可以这样做:

String xml = null;
try {
  xml = ...; //Create a well formed xml request

  //open a http connection and post it
} catch (Exception e) {
    if (xml != null) {
        // write XML to file
    }
}
于 2013-02-05T22:20:35.967 回答
0

如果您在 try 块之外/之前定义变量,则可以在 catch 内使用它。但实际上,您应该考虑为什么使用 try/catch 错误处理作为流控制。

于 2013-02-05T22:21:08.070 回答
0

您必须在 try 块之外声明变量,然后它将起作用

XmlDocument xml = null;
try {
  xml = Create a well formed xml request
  open a http connection and post it
}
catch (Exception e) {
  xml.save();
}

如您所说,在 try 块中声明的任何变量在 catch 块中均不可用,因此您必须将其放在外面

于 2013-02-05T22:24:26.237 回答
0

如果您在内部块中创建一个新元素,则无法访问它。

因此,如果您在 try 块中创建某些内容,它只会在其上可见。你无法做到这一点。

因此,对于您的问题,您应该从 try 块中创建 xml 请求。像这样的东西;

Create a well formed xml request
try {
    open a http connection and post it
}
//catching all exceptions here
catch (Exception e) {
    e.printStackTrace();
}
于 2013-02-05T22:25:08.620 回答