Closed. This question needs details or clarity。它当前不接受答案。
                            
                        
                    
                
            
                    
                
                        
                            
                        
                    
                        
                            想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
                        
                        在8个月前关闭。
                    
                
        

我正在用Java处理嵌套异常,我想使用条件(例如if(t.getCause().getCause() instanceOf MyCustomException))检查自定义异常的类型,但这可能会引发潜在的NPE。

所以我计划使用以下条件检查null

if(t.getCause().getCause() != null)
&& t.getCause().getCause() instanceOf MyCustomException) {
   ..........
}


这是一个好方法吗。请建议我是否有更好的方法?

谢谢!

最佳答案

首先,您不检查tt.getCause()本身(t != null && t.getCause() != null)。第二个错误将在这里:x instanceOf myCustomeException

其次,除非myCustomeException是一个类(在这种情况下,它应为标准状态为大写),否则这是无效的语法。在instanceof之后,需要一个类名。

附注:这是您的一个警告,因此,如果您确定它们不会为空并且不想要其他不必要的代码,则可以使用@SuppressWarnings("unchecked")禁止显示警告。

关于java - 使用getCause()。getCause()时避免嵌套异常的NPE的条件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57781269/

10-09 05:22