try { int* p = 0; *p = 1; } catch (…) { cout << "null pointer." << endl; } 我试图捕捉这样的exception,但它不工作,有任何帮助?
在php 5中使用try-catch语句时需要考虑什么样的性能影响? 我以前在网上阅读过一些关于这个主题的旧的,看似矛盾的信息。 我目前必须使用的许多框架都是在PHP 4上创build的,缺less很多php 5的优点。所以,我没有太多的经验来使用php的try-catchs。
当多个文件被放入监视的目录时,我遇到了FileSystemWatcher的问题。 我想parsing文件,只要它被放置在目录中。 通常情况下,第一个文件parsing正常,但将第二个文件添加到目录会导致访问问题。 偶尔,第一个文件甚至不parsing。 只有一个应用程序正在运行并看着这个目录。 最终,这个过程将在多台机器上运行,他们将会看到一个共享目录,但只有一台服务器可以parsing每个文件,因为数据被导入到数据库中,并且没有主键。 这是FileSystemWatcher代码: public void Run() { FileSystemWatcher watcher = new FileSystemWatcher("C:\\temp"); watcher.NotifyFilter = NotifyFilters.FileName; watcher.Filter = "*.txt"; watcher.Created += new FileSystemEventHandler(OnChanged); watcher.EnableRaisingEvents = true; System.Threading.Thread.Sleep(System.Threading.Timeout.Infinite); } 然后parsing该文件的方法: private void OnChanged(object source, FileSystemEventArgs e) { string line = null; try { using (FileStream fs = new FileStream(e.FullPath, FileMode.Open, FileAccess.Read, FileShare.None)) { […]
我想为所有意外的exception设置一些处理程序,我可能不会在代码中捕获这些exception。 在Program.Main()我用下面的代码: AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(ErrorHandler.HandleException); 但是没有按照我的预期工作。 当我在debugging模式下启动应用程序并抛出一个exception时,它确实调用了处理程序,但之后,Visual Studio中的exception帮助程序popup,好像发生的exception没有任何处理。 我在处理程序内部尝试了Application.Exit(),但是它没有工作。 我想实现的是,exception处理与我的处理程序,然后应用程序closures很好。 有没有其他的方法来做到这一点,或者我用错误的方式使用上面的代码?
你们能解释throw , throws和Throwable之间的区别和什么时候使用哪一个?
在大学的Java问题上,有这样的代码片段: class MyExc1 extends Exception {} class MyExc2 extends Exception {} class MyExc3 extends MyExc2 {} public class C1 { public static void main(String[] args) throws Exception { try { System.out.print(1); q(); } catch (Exception i) { throw new MyExc2(); } finally { System.out.print(2); throw new MyExc1(); } } static void q() throws Exception { […]
我尝试使用Java 8的Lambdaexpression式时遇到问题。通常情况下,它可以正常工作,但是现在我有了抛出IOException的方法。 最好看看下面的代码: class Bank{ …. public Set<String> getActiveAccountNumbers() throws IOException { Stream<Account> s = accounts.values().stream(); s = s.filter(a -> a.isActive()); Stream<String> ss = s.map(a -> a.getNumber()); return ss.collect(Collectors.toSet()); } …. } interface Account{ …. boolean isActive() throws IOException; String getNumber() throws IOException; …. } 问题是,它不能编译,因为我必须捕捉isActive-和getNumber-Methods的可能exception。 但即使我明确地使用下面的try-catch-Block,它仍然不能编译,因为我没有捕捉到exception。 所以无论是在JDK中有一个错误,或者我不知道如何捕获这些exception。 class Bank{ …. //Doesn't compile either public […]
捕获JavaScript中引发的所有exception的最佳技术是什么? 显然,最好的方法是使用try … catch。 但是,如果使用asynchronouscallback等等,那可能会变得棘手。 我知道IE和Gecko浏览器支持window.onerror,但是Opera和Safari呢? 下面是一些testing用例,我希望有一个中央exception处理解决scheme: // ErrorHandler-Test1 var test = null; test.arg = 5; // ErrorHandler-Test2 throw (new Error("Hello")); // ErrorHandler-Test3 throw "Hello again"; // ErrorHandler-Test4 throw { myMessage: "stuff", customProperty: 5, anArray: [1, 2, 3] }; // ErrorHandler-Test5 try { var test2 = null; test2.arg = 5; } catch(e) { ErrorHandler.handleError(e); } […]
最近我在C#解决scheme遇到以下exception: 错误2无法加载文件或程序集“Newtonsoft.Json,Version = 3.5.0.0,Culture = neutral,PublicKeyToken = b9a188c8922137c6”或其依赖项之一。 该参数不正确。 (从HRESULTexception:0x80070057(E_INVALIDARG)) 这不取决于我的代码或程序集的名称(如在这种情况下, Newtonsoft.Json )。 当我从解决scheme中删除这个dll时,编译器会告诉另一个exception。 所以我想应该关掉/打开我的电脑:)
是否可以使用ELMAH进行以下操作? logger.Log(" something"); 我正在做这样的事情: try { // Code that might throw an exception } catch(Exception ex) { // I need to log error here… } ELMAH不会自动logging此exception,因为它已被处理。