相关疑难解决方法(0)

如何从Java 8流中抛出CHECKED异常?

如何从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.

java lambda checked-exceptions java-8 java-stream

270
推荐指数
10
解决办法
11万
查看次数

在C#中等效的Java RuntimeException?

C#是否具有Java的java.lang.RuntimeException等价物?

(IE是一个异常,可以在不必被捕获的情况下抛出,或者在抛出异常时程序崩溃.)

.net exception-handling runtimeexception c#-3.0

27
推荐指数
1
解决办法
2万
查看次数

如何在C#中报告异常?

我有这样的代码Java,我用来报告异常(抛出FileNotFoundException,IOException,ClassNotFoundException).

例:

private void functionName() throws FileNotFoundException, IOException, ClassNotFoundException{}
Run Code Online (Sandbox Code Playgroud)

我需要这样做C#,我该怎么做?

c# throws

6
推荐指数
1
解决办法
189
查看次数

为什么必须在方法签名中仅声明某些异常被抛出

当使用"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 exception

2
推荐指数
1
解决办法
2576
查看次数

为什么我必须在try/catch语句中包装每个Thread.sleep()调用?

我正在尝试用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 interrupted-exception interruption

2
推荐指数
1
解决办法
9946
查看次数