如何在 catch 块中打印变量?
How to print variable in catch block?
我是编程新手。帮帮我。我想打印在 try 块到 catch 块中失败的 links 的值。我怎么能那样做?这是我的代码:
public class test {
public static void main(String[] args) throws NoSuchElementException {
try {
int i=1;
String links[]= new String[10];
links[1]="link1"
links[2]="link2"
links[3]="link3"
links[3]="link4"
WebDriver driver = new FirefoxDriver();
while(i<5){
driver.get(links[i])
driver.findElement(By.xpath("//div[contains(@id,'image')]")).click();
i++;
}
}
catch(NoSuchElementException e){
// e.printStackTrace(System.out);
}
}
}
假设 link 之一找不到元素。我希望在 catch 块中打印 link 并转到下一个 link。我该怎么做?
为了能够在 link 失败后尝试下一个 link,您应该将 try-catch 块放在 while 循环中。
int i=0;
String links[]= new String[10];
links[0]="link1";
links[1]="link2";
links[2]="link3";
links[3]="link4";
WebDriver driver = new FirefoxDriver();
while(i<4){
try {
driver.get(links[i]);
driver.findElement(By.xpath("//div[contains(@id,'image')]")).click();
i++;
}
catch(NoSuchElementException e){
System.out.println(links[i] + " failed");
i++;
}
}
要访问 try
和 catch
块中的变量,您需要将它们的作用域移得更远(在您的例子中是周围的方法)。如果您希望能够继续迭代您的数组,您需要通过将 try-catch 块移动到其中来确保在循环的单次迭代中捕获异常。这也缩小了 try-catch 块的大小,这通常是一件好事。
public class test {
public static void main(String[] args) throws NoSuchElementException {
int i = 1;
String links[] = new String[10];
links[1] = "link1"
links[2] = "link2"
links[3] = "link3"
links[3] = "link4"
WebDriver driver = new FirefoxDriver();
while (i < 5) {
try {
driver.get(links[i])
driver.findElement(By.xpath("//div[contains(@id,'image')]")).click();
} catch (NoSuchElementException e) {
System.out.println("Problem link had index: " + i);
} finally {
i++;
}
}
}
}
在 try 块外声明 links 变量。 link 变量超出您代码的范围,即它应该在您启动 try 块之前。
String links[] = new String[10]
try{...
}
我是编程新手。帮帮我。我想打印在 try 块到 catch 块中失败的 links 的值。我怎么能那样做?这是我的代码:
public class test {
public static void main(String[] args) throws NoSuchElementException {
try {
int i=1;
String links[]= new String[10];
links[1]="link1"
links[2]="link2"
links[3]="link3"
links[3]="link4"
WebDriver driver = new FirefoxDriver();
while(i<5){
driver.get(links[i])
driver.findElement(By.xpath("//div[contains(@id,'image')]")).click();
i++;
}
}
catch(NoSuchElementException e){
// e.printStackTrace(System.out);
}
}
}
假设 link 之一找不到元素。我希望在 catch 块中打印 link 并转到下一个 link。我该怎么做?
为了能够在 link 失败后尝试下一个 link,您应该将 try-catch 块放在 while 循环中。
int i=0;
String links[]= new String[10];
links[0]="link1";
links[1]="link2";
links[2]="link3";
links[3]="link4";
WebDriver driver = new FirefoxDriver();
while(i<4){
try {
driver.get(links[i]);
driver.findElement(By.xpath("//div[contains(@id,'image')]")).click();
i++;
}
catch(NoSuchElementException e){
System.out.println(links[i] + " failed");
i++;
}
}
要访问 try
和 catch
块中的变量,您需要将它们的作用域移得更远(在您的例子中是周围的方法)。如果您希望能够继续迭代您的数组,您需要通过将 try-catch 块移动到其中来确保在循环的单次迭代中捕获异常。这也缩小了 try-catch 块的大小,这通常是一件好事。
public class test {
public static void main(String[] args) throws NoSuchElementException {
int i = 1;
String links[] = new String[10];
links[1] = "link1"
links[2] = "link2"
links[3] = "link3"
links[3] = "link4"
WebDriver driver = new FirefoxDriver();
while (i < 5) {
try {
driver.get(links[i])
driver.findElement(By.xpath("//div[contains(@id,'image')]")).click();
} catch (NoSuchElementException e) {
System.out.println("Problem link had index: " + i);
} finally {
i++;
}
}
}
}
在 try 块外声明 links 变量。 link 变量超出您代码的范围,即它应该在您启动 try 块之前。
String links[] = new String[10]
try{...
}