Tag: 线程exception

如何处理AccessViolationException

我在.net应用程序中使用COM对象(MODI)。 我调用的方法抛出一个System.AccessViolationException,它被Visual Studio拦截。 奇怪的是,我已经把我的调用包装在一个try catch中,它有处理AccessViolationException,COMException和其他所有东西,但是当Visual Studio(2010)拦截AccessViolationException时,debugging器中断了方法调用(doc.OCR)如果我经过,它会继续到下一行,而不是进入catch块。 此外,如果我运行在Visual Studio以外,我的应用程序崩溃。 我怎样才能处理这个C​​OM对象中引发的exception? MODI.Document doc = new MODI.Document(); try { doc.Create(sFileName); try { doc.OCR(MODI.MiLANGUAGES.miLANG_ENGLISH, false, false); sText = doc.Images[0].Layout.Text; } catch (System.AccessViolationException ex) { //MODI seems to get access violations for some reason, but is still able to return the OCR text. sText = doc.Images[0].Layout.Text; } catch (System.Runtime.InteropServices.COMException ex) […]

在C#中重新抛出exception的正确方法是什么?

我有一个问题来源于我的合作伙伴,与我做的事情不一样。 这样做更好吗: try { … } catch (Exception ex) { … throw; } 或这个: try { … } catch (Exception ex) { … throw ex; } 他们做同样的事情吗? 这个比那个好吗?

为什么在C#中捕获并重新抛出exception?

我正在看可序列化DTO上的文章C# – 数据传输对象 。 文章包含这段代码: public static string SerializeDTO(DTO dto) { try { XmlSerializer xmlSer = new XmlSerializer(dto.GetType()); StringWriter sWriter = new StringWriter(); xmlSer.Serialize(sWriter, dto); return sWriter.ToString(); } catch(Exception ex) { throw ex; } } 本文的其余部分看起来理智和合理(对于noob),但是try-catch-throw会抛出WtfException … 这不完全等同于不处理exception吗? 人机工程学: public static string SerializeDTO(DTO dto) { XmlSerializer xmlSer = new XmlSerializer(dto.GetType()); StringWriter sWriter = new StringWriter(); […]

我怎样才能杀死一个线程? 不使用stop();

Thread currentThread=Thread.currentThread(); public void run() { while(!shutdown) { try { System.out.println(currentThread.isAlive()); Thread.interrupted(); System.out.println(currentThread.isAlive()); if(currentThread.isAlive()==false) { shutdown=true; } } catch(Exception e) { currentThread.interrupt(); } } } }); thread.start();

为什么在尝试从列表中删除元素时会得到UnsupportedOperationException?

我有这个代码: public static String SelectRandomFromTemplate(String template,int count) { String[] split = template.split("|"); List<String> list=Arrays.asList(split); Random r = new Random(); while( list.size() > count ) { list.remove(r.nextInt(list.size())); } return StringUtils.join(list, ", "); } 我得到这个: 06-03 15:05:29.614: ERROR/AndroidRuntime(7737): java.lang.UnsupportedOperationException 06-03 15:05:29.614: ERROR/AndroidRuntime(7737): at java.util.AbstractList.remove(AbstractList.java:645) 这将是怎样的正确的方式? Java.15

如果一个检索方法返回“null”,或者当它不能产生返回值时抛出exception?

我有一个方法,应该返回一个对象,如果它被发现。 如果没有find,我应该: 返回null 抛出exception 其他

从Java中的finally块返回

我最近惊讶地发现在Java的finally块中可能有一个return语句。 看起来好像很多人认为按照“ 不要在最后条款中回来”中所描述的那样做是件坏事。 稍微深入一点,我也发现“ Java的回归并不总是如此 ”,它显示了最终块中其他typesstream量控制的一些非常可怕的例子。 所以,我的问题是,任何人都可以给我一个例子,在finally块中的返回语句(或其他stream量控制)产生更好/更易读的代码?

使用AsyncTask

道歉,如果这是一个简单的问题,但我很新,并仍在学习。 我有一个应用程序,当我的用户点击buttonlogin后,input他们的详细信息,这是崩溃与android.os.NetworkOnMainThreadException我已经发现这是因为我在主线程上执行networking操作,并解决我需要使用AsyncTask,但我坚持使用语法。 这是我的代码点击button后,调用一个函数来连接,然后parsingjson到sqlite数据库。 // Login button Click Event btnLogin.setOnClickListener(new View.OnClickListener() { public void onClick(View view) { String email = inputEmail.getText().toString(); String password = inputPassword.getText().toString(); UserFunctions userFunction = new UserFunctions(); JSONObject json = userFunction.loginUser(email, password); // check for login response try { if (json.getString(KEY_SUCCESS) != null) { loginErrorMsg.setText(""); String res = json.getString(KEY_SUCCESS); if(Integer.parseInt(res) == 1){ // […]

尝试/在Python除外:你如何正确地忽略例外?

当你只是想做一个尝试 – 除非没有处理exception,你怎么在Python中做到这一点? 下面是正确的做法吗? try: shutil.rmtree(path) except: pass

如何创build一个不存在的目录?

什么是最优雅的方式来检查文件将被写入目录是否存在,如果不是,使用Python创build目录? 这是我试过的: import os file_path = "/my/directory/filename.txt" directory = os.path.dirname(file_path) try: os.stat(directory) except: os.mkdir(directory) f = file(filename) 不知何故,我错过了os.path.exists (感谢kanja,Blair和Douglas)。 这是我现在所拥有的: def ensure_dir(file_path): directory = os.path.dirname(file_path) if not os.path.exists(directory): os.makedirs(directory) 有没有“打开”的标志,这使得这自动发生?