Tag: 线程exception

java.lang.IllegalStateException:在onSaveInstanceState后无法执行此操作

我正在使用我的应用程序的支持库。 在我的FragmentActivity我使用AsyncTask从互联网上下载数据。 在onPreExecute()方法中,我添加一个片段,并在onPostExecute()方法中再次删除它。 当方向改变时,我得到了上述例外。 请看看细节: private class onFriendAddedAsyncTask extends AsyncTask<String, Void, String> { DummyFragment dummyFragment; FragmentManager fm; FragmentTransaction ft; @Override protected void onPreExecute() { Log.v("MyFragmentActivity", "onFriendAddedAsyncTask/onPreExecute"); dummyFragment = DummyFragment.newInstance(); fm = getSupportFragmentManager(); ft = fm.beginTransaction(); ft.add(dummyFragment, "dummy_fragment"); ft.commit(); } @Override protected void onPostExecute(String result) { Log.v("MyFragmentActivity", "onFriendAddedAsyncTask/onPostExecute"); ft = fm.beginTransaction(); ft.remove(dummyFragment); ft.commit(); } @Override protected […]

java.lang.RuntimeException和java.lang.Exception之间的区别

有人请解释java.lang.RuntimeException和java.lang.Exception之间的区别吗? 如果我创build自己的exception,如何决定扩展哪一个?

如何在Java中定义自定义exception类,最简单的方法是什么?

我试图定义我自己的exception类最简单的方法,这就是我得到的: public class MyException extends Exception {} public class Foo { public bar() throws MyException { throw new MyException("try again please"); } } 这是Java编译器所说的: cannot find symbol: constructor MyException(java.lang.String) 我有一种感觉,这个构造函数必须从java.lang.Exception ,不是吗?

构造函数可以在Java中引发exception吗?

允许构造函数抛出exception吗?

我怎样才能在PHP中处理file_get_contents()函数的警告?

我写了这样一个PHP代码 $site="http://www.google.com"; $content = file_get_content($site); echo $content; 但是,当我从$site删除“http://”我得到以下警告: 警告:file_get_contents(www.google.com)[function.file-get-contents]:未能打开stream: 我试图try ,但没有奏效。

为什么我不应该在“尝试” – “捕捉”包装每个块?

我一直认为,如果一个方法可以抛出一个exception,那么不要用一个有意义的try块来保护这个调用是鲁莽的。 我只是张贴' 你应该总是打包调用,可以尝试,赶上块。 “ 这个问题 ,并被告知,这是”非常糟糕的build议“ – 我想明白为什么。

在C#中,如何重新抛出InnerException而不丢失堆栈跟踪?

我正在通过反思调用一种可能导致exception的方法。 我怎样才能传递exception给我的调用者没有包装reflection放在它呢? 我重新抛出InnerException,但是这破坏了堆栈跟踪。 示例代码: public void test1() { // Throw an exception for testing purposes throw new ArgumentException("test1"); } void test2() { try { MethodInfo mi = typeof(Program).GetMethod("test1"); mi.Invoke(this, null); } catch (TargetInvocationException tiex) { // Throw the new exception throw tiex.InnerException; } }

什么时候应该使用noexcept?

noexcept关键字可以适用于许多函数签名,但我不确定在实际中何时应该考虑使用它。 根据我迄今为止所读到的内容, noexcept的最后一刻似乎解决了移动构造函数抛出时出现的一些重要问题。 但是,我仍然无法为一些实际问题提供令人满意的答案,这些问题使我更多地了解了noexcept 。 有很多函数的例子,我知道永远不会抛出,但编译器无法自己确定。 在所有这些情况下,我是否应该在函数声明中添加noexcept的内容? 不得不考虑每个函数声明之后是否需要附加noexcept ,这将大大降低程序员的生产力(坦率地说,这将是一个痛苦的屁股)。 对于哪种情况,我应该更加小心使用noexcept ,并且在哪些情况下我可以逃避隐含的noexcept(false) ? 什么时候可以切实地期望在使用noexcept之后观察性能改进? 具体来说,给出一个代码,在添加noexcept之后,C ++编译器能够生成更好的机器代码。 就我个人而言,由于为编译器提供了更多的自由度来安全地应用某些优化,我关心的是noexcept 。 现代编译器以这种方式利用noexcept吗? 如果没有,我可以指望他们中的一些人在不久的将来这样做吗?

如何阅读和理解java堆栈跟踪?

例如,我得到了这样一个堆栈跟踪: java.lang.NullPointerException abc.investxa.presentation.controllers.UnixServerJobController.handleRequest(UnixServerJobController.java:66) org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501) javax.servlet.http.HttpServlet.service(HttpServlet.java:690) javax.servlet.http.HttpServlet.service(HttpServlet.java:803) org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 那么这个exception的根本原因是什么? 从堆栈跟踪中,我发现OncePerRequestFilter类中的doFilter函数存在问题! 但是,当我在那里放置一个断点时,程序就不会停在那个断点处。 有谁能给出解释吗? 在一般情况下,我应该如何使用该堆栈案例进行debugging(从底部到顶部或从顶部到底部阅读)!

是否滥用IDisposable和“使用”作为获取exception安全的“范围行为”的手段?

我经常在C ++中使用的东西是让A类通过A构造函数和析构函数处理另一个类B的状态进入和退出条件,以确保如果该范围内的某个东西抛出一个exception,那么B就会知道当范围退出时状态。 就缩写而言,这不是纯粹的RAII,但是它仍然是一个确定的模式。 在C#中,我经常想要做的 class FrobbleManager { … private void FiddleTheFrobble() { this.Frobble.Unlock(); Foo(); // Can throw this.Frobble.Fiddle(); // Can throw Bar(); // Can throw this.Frobble.Lock(); } } 这需要做什么 private void FiddleTheFrobble() { this.Frobble.Unlock(); try { Foo(); // Can throw this.Frobble.Fiddle(); // Can throw Bar(); // Can throw } finally { this.Frobble.Lock(); } } 如果我想在FiddleTheFrobble返回时保证Frobble状态。 […]