我收到一些关于 Java 中无法访问的代码如何修复它的错误. 我使用Eclipse Neon



我在重新编译时有来自 GitHub 的代码,我在这里收到有关无法访问代码的错误。 这是我的源代码。 这里无法访问的代码是什么意思? 以及如何解决它?

class z implements Runnable
{
w a;
final OrderClient b;
private static final String[] c;

public z(final OrderClient b, final w a) {
this.b = b;
this.a = a;
}

@Override
public void run() {
try {
this.executeTransaction();
}
catch (Exception exception) {
this.b.onProgress(null, ProgressType.Exception, this.a.e, exception);
}
}

public Order executeTransaction() throws TimeoutException, ConnectException, InterruptedException {
final boolean b = Order.b;
int i = 0;
final boolean b2 = b;
while (i < this.b.TradeTimeout) {
if (this.a.b != null) {
throw this.a.b;
}
if (this.a.d != null) {
return E.b(this.a.d, 0);
}
if (!this.b.QuoteClient.Connected()) {
throw new ConnectException(new Exception(z.c[1]), this.b.Log);
}
try {
Thread.sleep(1L);
}
catch (InterruptedException ex4) {}
++i;
if (b2) {
break;
}
}
final StringBuilder sb = new StringBuilder();
final String[] c = z.c;
throw new TimeoutException(sb.append(c[2]).append(this.b.TradeTimeout).append(c[0]).toString(), this.b.Log);
}

static {
final String[] c2 = new String[3];
int n = 0;
final String s;
final int length = (s = "7{`&Ty}u001dtu000bZ~y}S}u0007]c6wu0006cu0001@p6|u0001ur\7sku0016ru001dZ~y}u0018Yy3u0001tu0018Bn6uu0001~u0005u000edsau0005tu001au000e~x3").length();
int char1 = 3;
int index = -1;
Label_0021: {
break Label_0021;
do {
char1 = s.charAt(index);
++index;
final String s2 = s;
final int beginIndex = index;
final char[] charArray = s2.substring(beginIndex, beginIndex + char1).toCharArray();
int length2;
int n3;
final int n2 = n3 = (length2 = charArray.length);
int n4 = 0;
while (true) {
Label_0184: {
if (n2 > 1) {
break Label_0184;
}
length2 = (n3 = n4);
do {
final char c3 = charArray[n3];
char c4 = '';
switch (n4 % 7) {
case 0: {
c4 = 'u0017';
break;
}
case 1: {
c4 = 'u0016';
break;
}
case 2: {
c4 = 'u0013';
break;
}
case 3: {
c4 = 's';
break;
}
case 4: {
c4 = 'u0011';
break;
}
case 5: {
c4 = 'h';
break;
}
default: {
c4 = '.';
break;
}
}
charArray[length2] = (char)(c3 ^ c4);
++n4;
} while (n2 == 0);
}
if (n2 > n4) {
continue;
}
break;
}
c2[n++] = new String(charArray).intern();
} while ((index += char1) < length);
}
c = c2;
}
}

当我尝试编译时,段中出现错误。由于无法访问的代码而出错,为什么会这样?

do {
char1 = s.charAt(index);
++index;
final String s2 = s;
final int beginIndex = index;
final char[] charArray = s2.substring(beginIndex, beginIndex + char1).toCharArray();
int length2;
int n3;
final int n2 = n3 = (length2 = charArray.length);
int n4 = 0;
while (true) {
Label_0184: {
if (n2 > 1) {
break Label_0184;
}
length2 = (n3 = n4);
do {
final char c3 = charArray[n3];
char c4 = '';
switch (n4 % 7) {
case 0: {
c4 = 'u0017';
break;
}
case 1: {
c4 = 'u0016';
break;
}
case 2: {
c4 = 'u0013';
break;
}
case 3: {
c4 = 's';
break;
}
case 4: {
c4 = 'u0011';
break;
}
case 5: {
c4 = 'h';
break;
}
default: {
c4 = '.';
break;
}
}
charArray[length2] = (char)(c3 ^ c4);
++n4;
} while (n2 == 0);
}
if (n2 > n4) {
continue;
}
break;
}
c2[n++] = new String(charArray).intern();
} while ((index += char1) < length);
}
c = c2;
}

我想知道为什么会出现像无法访问的代码这样的错误?

无法访问的代码意味着您在返回抛出中断语句之后编写了一些代码。

在这里,在"do"开始之前,您显然有这个:

Label_0021: {
break Label_0021;

执行流在此中断标签处结束。因此,无法访问 do 块。

最新更新