Java.util.EnumSet.forEach, запрашивающий несообщенное исключение [дубликат]JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Java.util.EnumSet.forEach, запрашивающий несообщенное исключение [дубликат]

Сообщение Anonymous »

Компиляция этого Java-кода:
package com.acme.javasdk;

public class Enum_Test
{
public enum MyEnum
{
NoOption (0x00),
Option1 (0x01),
Option2 (0x02),
Option3 (0x04),
Option4 (0x08),
;

long value;

MyEnum(long value)
{
this.value = value;
}

public long getValue()
{
return(value);
}
}

MyEnum option;

public void setOption(
java.util.EnumSet options
) throws java.lang.Exception
{
this.option = MyEnum.NoOption;

options.forEach(
option ->
addOption(option)
);
}

public void addOption(
MyEnum option
) throws java.lang.Exception
{
long lNewValue = this.option.value |= option.value;

if(lNewValue == MyEnum.NoOption.value)
{
throw new java.lang.Exception(
"Invalid option."
);
}

this.option.value = lNewValue;
}

}

выдает следующую ошибку, хотя метод объявляет, что может быть выброшено java.lang.Exception:
Enum_Test.java:37: error: unreported exception Exception; must be caught or declared to be thrown
[javac] addOption(option)
[javac] ^
[javac] 1 error

Даже если я обрабатываю исключение в методе:
public void setOption(
java.util.EnumSet options
) throws java.lang.Exception
{
this.option = MyEnum.NoOption;
try
{
options.forEach(
option ->
addOption(option)
);
}
catch(java.lang.Exception e)
{
throw e;
}
}

он ​​по-прежнему генерирует ошибку, из-за которой вызов addOption(option) может вызвать необработанное исключение:
Enum_Test.java:38: error: unreported exception Exception; must be caught or declared to be thrown
[javac] addOption(option)
[javac] ^
[javac] 1 error


Подробнее здесь: https://stackoverflow.com/questions/792 ... -exception
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»