如何从Java 8流/ lambdas中抛出CHECKED异常?
换句话说,我想像这样编译代码:
public List<Class> getClasses() throws ClassNotFoundException {
List<Class> classes =
Stream.of("java.lang.Object", "java.lang.Integer", "java.lang.String")
.map(className -> Class.forName(className))
.collect(Collectors.toList());
return classes;
}
Run Code Online (Sandbox Code Playgroud)
此代码无法编译,因为Class.forName()上面的方法抛出ClassNotFoundException,检查.
请注意我不希望将已检查的异常包装在运行时异常中,而是抛出包装的未经检查的异常.我想抛出已检查的异常本身,而不是向流添加丑陋的try/ catches.
C#是否具有Java的java.lang.RuntimeException等价物?
(IE是一个异常,可以在不必被捕获的情况下抛出,或者在抛出异常时程序崩溃.)
我有这样的代码Java,我用来报告异常(抛出FileNotFoundException,IOException,ClassNotFoundException).
例:
private void functionName() throws FileNotFoundException, IOException, ClassNotFoundException{}
Run Code Online (Sandbox Code Playgroud)
我需要这样做C#,我该怎么做?
当使用"IllegalAccessException"声明方法时,eclipse强制我将该方法声明为抛出异常
public void a() throws IllegalAccessException {
if(x == 1){
throw new IllegalAccessException("TEST);
}
}
Run Code Online (Sandbox Code Playgroud)
并且在使用"IllegalStateException"的方法b中,我不需要将该方法声明为抛出异常
public void b() {
if(x == 1){
throw new IllegalStateException("TEST);
}
}
Run Code Online (Sandbox Code Playgroud)
一个强制我声明抛出异常的方法而另一个异常的异常之间有什么不同
谢谢
我正在尝试用Java编写我的第一个多线程程序.我无法理解为什么我们需要围绕for循环进行此异常处理.当我在没有try/catch子句的情况下编译时,它会产生InterruptedException.(这是消息:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Unhandled exception type InterruptedException
Run Code Online (Sandbox Code Playgroud)
)
但是当使用try/catch运行时,catch块中的sysout永远不会显示 - 这意味着没有捕获到这样的异常!
public class SecondThread implements Runnable{
Thread t;
SecondThread(){
t = new Thread(this, "Thread 2");
t.start();
}
public void run(){
try{
for(int i=5 ; i>0 ; i--){
System.out.println("thread 2: " + i);
Thread.sleep(1000);
}
}
catch(InterruptedException e){
System.out.println("thread 2 interrupted");
}
}
}
public class MainThread{
public static void main(String[] args){
new SecondThread();
try{
for(int i=5 ; i>0 ; i--){
System.out.println("main thread: …Run Code Online (Sandbox Code Playgroud) java ×3
.net ×1
c# ×1
c#-3.0 ×1
exception ×1
interruption ×1
java-8 ×1
java-stream ×1
lambda ×1
throws ×1