求:怎么捕获当前java线程等待中未处理的异常

线程上未捕获异常-学网
线程上未捕获异常
状态:1个回答日期: 你代码的顶层的应用没有加进来。 比如"using System.Text"就是文本的引用。 所以,你要找一下"ThreadExceptionEventHandler"的引用类型是什么就可以了状态:1个回答日期:让调用它的方法来处理问题补充:在该方法的catch处理程序中捕获它并重新抛出 首先自定义一个异常类 public class ActionException extends Exception{状态:1个回答日期:python的线程中的异常,通常不会给你显示出错的语句。你可以将thread函数,或者是Thread的run里的内容用整个儿的try catch包裹起来。搜索 然后这样 import traceback,sys try...状态:1个回答日期:可以监视当前线程的未捕获异常,这样就可以捕获到activity的异常了。方法如下:1.创建一个类并实现Thread.UncaughtExceptionHandler接口2.在主线程中调用Thread.setDefaultU...状态:1个回答日期:子线程执行System.exit(0),会停止主线程。 整个当前java进程会结束。所以进程中的所有线程也会随时结束。 不过不理解你为什么需要这种需求,这不是什么好的处理异常的...状态:1个回答日期:try catch可以啊,只要是同一段代码,catch到异常以后,使用printStackTrace()打印信息里是带有线程信息的。状态:1个回答日期:你可以使用 try { //执行代码 } catch (...) { //捕获到任何异常就会走这里,在这里处理线程退出, ExitThread(GetLastError()); }状态:1个回答日期:每个线程都要去处理自己的事情,包括异常。当所有的线程都结束的时候才说明程序运行Over了。子线程抛它的异常,母线程接着做它的事情,如果子线程的异常被捕获,且在处理...状态:1个回答日期: ?一个本地系统钩子是一个系统钩子-它仅在指定的消息由一个单一线程处理时被调用。 ?一个全局系统钩子是一个系统钩子-它当指定的消息被任何应用程序在整个系统上所...状态:1个回答日期:; } catch(sqlException e)//``````捕获数据库连接异常// { messagebox.show(e.tostring()); } catch(Exception e)//``````捕获其它异常/&#47...
与【线程上未捕获异常】相关信息:&&&&&&&&&&&&&&&&&&
用户还关注
12345678910
大类导航: |3227人阅读
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:174704次
积分:2503
积分:2503
排名:第11458名
原创:67篇
转载:20篇
评论:58条
(20)(1)(17)(2)(9)(1)(1)(2)(2)(9)(19)(3)(1)1.主线程不能捕获到子线程的异常
package Thread.E
import java.util.concurrent.ExecutorS
import java.util.concurrent.E
public class ExeceptionThread implements Runnable {
public void run() {
throw new RuntimeException();
public static void main(String[] args) {
ExecutorService exec = Executors.newCachedThreadPool();
exec.execute(new ExeceptionThread());
} catch (Exception e) {
System.out.println("exeception has handled");
Exception in thread "pool-1-thread-1" java.lang.RuntimeException
at Thread.Exection.ExeceptionThread.run(ExeceptionThread.java:10)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
2.通过设置HandlerThreadFactory捕获异常
package Thread.E
import java.util.concurrent.ExecutorS
import java.util.concurrent.E
import java.util.concurrent.ThreadF
class ExceptionThread2 implements Runnable {
public void run() {
Thread t = Thread.currentThread();
System.out.println("run() by " + t);
System.out.println("eh=" + t.getUncaughtExceptionHandler());
throw new RuntimeException();
class MyUncaughtExceptionHandler implements Thread.UncaughtExceptionHandler {
public void uncaughtException(Thread t, Throwable e) {
System.out.println("caught " + e);
class HandlerThreadFactory implements ThreadFactory {
public Thread newThread(Runnable r) {
System.out.println(this + " creating new Thread");
Thread t = new Thread(r);
System.out.println("created " + t + " ID:" + t.getId());
t.setUncaughtExceptionHandler(new MyUncaughtExceptionHandler());
System.out.println("eh=" + t.getUncaughtExceptionHandler());
public class CaptureUncaughtException {
public static void main(String[] args) {
ExecutorService exec = Executors
.newCachedThreadPool(new HandlerThreadFactory());
exec.execute(new ExceptionThread2());
Thread.Exection.HandlerThreadFactory@4e25154f creating new Thread
created Thread[Thread-0,5,main] ID:9
eh=Thread.Exection.MyUncaughtExceptionHandler@70dea4e
run() by Thread[Thread-0,5,main]
eh=Thread.Exection.MyUncaughtExceptionHandler@70dea4e
Thread.Exection.HandlerThreadFactory@4e25154f creating new Thread
created Thread[Thread-1,5,main] ID:11
eh=Thread.Exection.MyUncaughtExceptionHandler@193fa958
caught java.lang.RuntimeException
3.通过设置默认异常捕获类捕获异常
package Thread.E
import java.util.concurrent.ExecutorS
import java.util.concurrent.E
public class SettingDefaultHandler {
public static void main(String[] args) {
Thread.setDefaultUncaughtExceptionHandler(
new MyUncaughtExceptionHandler());
ExecutorService exec=Executors.newCachedThreadPool();
exec.execute(new ExceptionThread2());
run() by Thread[pool-1-thread-1,5,main]
eh=java.lang.ThreadGroup[name=main,maxpri=10]
caught java.lang.RuntimeException
阅读(...) 评论()服务器开发(40)
一个windows程序,多线程,若有线程A、B,在线程A中有类似代码
& & & & & & & MyClass * pC
& & & & & & & pClass=NULL;
& & & & & & & pClass-&GetData();
&若pClass未进行正确赋值(为NULL),则会出现异常,并且此异常try{} &catch(){} 捕获不到,
此时程序将崩溃,线程A、B都不能运行了,但是如果做相关处理,则只是A线程崩溃,B
正常运行!!
& & 在启动线程A、B之前调用SetUnhandleExceptionFilter函数,设置回调函数来处理捕获的异常
& &如:在回调函数中调用AfxMessageBox等,即可达到上述目的
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:24920次
排名:千里之外
原创:49篇
转载:74篇
(1)(2)(2)(3)(10)(11)(3)(2)(3)(3)(5)(12)(6)(8)(10)(9)(9)(11)(4)(4)(1)(1)(5)

我要回帖

更多关于 java线程等待 的文章

 

随机推荐