Questions tagged «exception»

异常是一种异常情况,需要偏离程序的正常流程。通常,异常不应导致完全失败,而应由异常处理程序来处理。异常处理是许多编程语言中的内置构造。通常,通过展开堆栈来处理异常,从而回滚到异常范围之外的已定义状态,然后调用处理程序块或例程。

10
抛出或尝试接球
决定是在方法中添加throws子句还是使用try-catch?的一般经验法则是什么? 根据我自己的了解,throws当调用方破坏了合同的末端(传递的对象)时,try-catch应使用;当在方法内部执行的操作期间发生异常时,应使用。它是否正确?如果是这样,应该在呼叫方执行什么操作? PS:通过Google和SO搜索,但希望对此有一个明确的答案。

6
“ NoClassDefFoundError:无法初始化类”错误
当我运行项目时,会收到此错误的大量输出: 2009年9月9日,上午8:22:23 org.apache.catalina.core.StandardWrapperValve调用 严重:Servlet Jersey的Servlet.service()抛出异常 java.lang.NoClassDefFoundError:无法初始化类SpringFactory 在com.point2.prospect.persistence.hibernate.HibernateTransactionInterceptor.doFilter(HibernateTrans actionInterceptor.java:17) 在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 在com.point2.prospect.restapi.ServerErrorInterceptor.doFilter(ServerErrorInterceptor.java:27) 在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 在org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 在org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 在org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) 在org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 在org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 在org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) 在org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845) 在org.apache.coyote.http11.Http11Protocol $ Http11ConnectionHandler.process(Http11Protocol.java:583) 在org.apache.tomcat.util.net.JIoEndpoint $ Worker.run(JIoEndpoint.java:447) 在java.lang.Thread.run(Thread.java:619) 我注意到此问题的出现方式是在整个网络上被询问,但没有真正的答案。这种错误的一般原因是什么?
77 java  spring  exception 

5
如何在Laravel中手动返回或引发验证错误/异常?
有一种将CSV数据导入数据库的方法。我使用进行一些基本验证 class CsvImportController extends Controller { public function import(Request $request) { $this->validate($request, [ 'csv_file' => 'required|mimes:csv,txt', ]); 但是在那之后,由于更复杂的原因,事情可能会出错,在兔子洞的更深处,这会引发某种异常。我无法在validate此处编写用于该方法的适当的验证内容,但是,我真的很喜欢验证失败时Laravel的工作方式以及将错误嵌入到刀片视图中的难易程度,等等。 是否有一种(最好是干净的)方式手动告诉Laravel:“我知道我validate现在没有使用您的方法,但我真的很希望您像在这里一样暴露此错误”?是否有我可以返回的东西,可以包装东西的异常之类的东西? try { // Call the rabbit hole of an import method } catch(\Exception $e) { // Can I return/throw something that to Laravel looks // like a validation error and acts …

5
是否有一个标准的Java异常类表示“找不到对象”?
考虑以下一般形式的函数: Foo findFoo(Collection<Foo> foos, otherarguments) throws ObjectNotFoundException { for(Foo foo : foos){ if(/* foo meets some condition*/){ return foo; } } throw new ObjectNotFoundException(); } 例如,一个具体案例是: User findUserByName(Collection<User> users, String name) throws ObjectNotFoundException { for(User user : users){ if(user.getName().equals(name)){ return user; } } throw new ObjectNotFoundException(); } 如果找不到对象,这些函数将引发异常。我可以为此创建一个自定义的异常类(在示例中ObjectNotFoundException),但是我更喜欢使用现有的类。但是,我在标准java库中找不到具有此含义的任何异常类。您知道这里是否可以使用标准例外吗?

6
这可能是什么?[TsLint错误:“必须正确处理承诺”]
我正在使用async/awaitTypeScript做一些基本的异步操作,但是TSLint在下面的这两个函数中抛出了神秘的错误消息。有人遇到过这些错误吗?在错误输出中未提及控制规则,因此我不明白是什么原因造成的。任何想法将不胜感激。 主要要求: import * as rp from 'request-promise' export function getRequest(address: rp.Options): rp.RequestPromise { return rp(address) } 导出异步功能: export async function getStatus(message: Message) { try { const res = await getRequest(address) if (res.ready) { message.reply('...') } else { message.reply('...') } } catch (err) { message.reply(err) } } 这得到:Promises must be …

3
使用Joda日期和时间API解析多种格式
我正在使用Joda解析包含日期/时间的第三方日志文件。日期/时间采用两种不同格式之一,具体取决于我正在解析的日志文件的使用期限。 目前,我有这样的代码: try { return DateTimeFormat.forPattern("yyyy/MM/dd HH:mm:ss").parseDateTime(datePart); } catch (IllegalArgumentException e) { return DateTimeFormat.forPattern("E, MMM dd, yyyy HH:mm").parseDateTime(datePart); } 这有效,但违反了有效Java 2nd Edition中Joshua Bloch的建议(条款57:仅在特殊情况下使用例外)。由于日志文件中错误的日期/时间,这也使得很难确定是否发生IllegalArgumentException。 您能提出一种不会滥用异常的更好的方法吗?

8
什么是抑制异常?
注释(用户SOC上的)回答到关于尾调用优化的问题提到了Java 7中有一个称呼,是因为“加ARM的”的“抑制异常”,新的功能(适用于ARM CPU的支持?)。 在这种情况下,什么是“受抑制的例外”?在其他情况下,“被抑制的异常”将是被捕获然后被忽略的异常(这是一个好主意)。这显然是不同的。

6
IllegalStateException的预期用途是什么?
今天在与同事的讨论中提出了这一点。 Javadocs for JavaIllegalStateException指出: 表示已在非法或不适当的时间调用了方法。换句话说,对于所请求的操作,Java环境或Java应用程序没有处于适当的状态。 而有效的Java说(第248页的第60项): 另一个通常重用的异常是IllegalStateException。如果由于接收对象的状态而调用是非法的,通常会抛出异常。例如,如果调用者在正确初始化某个对象之前尝试使用该对象,则将引发异常。 似乎这里有些差异。javadocs的第二句话听起来像是异常可以描述关于Java执行状态的非常广泛的条件,但是Effective Java中的描述听起来像是它用于特定于对象状态的条件,该对象的状态方法已被调用。 我在JDK(例如collections Matcher)和Guava中看到的用法肯定似乎属于Effective Java所谈论的类别(“此对象处于无法调用此方法的状态”)。这似乎也与IllegalStateException的兄弟姐妹一致IllegalArgumentException。 IllegalStateExceptionJDK中是否有任何与“ Java环境”或“ Java应用程序”相关的合法用法?还是有任何最佳实践指南倡导将其用于更广泛的执行状态?如果不是这样,为什么javadocs这样写呢?;)

5
给定的键在词典中不存在。哪个键?
有没有一种方法可以影响所有通用类,从而在C#中的以下异常中获取给定键的值?我认为这是Microsoft的异常描述中的一个大小姐。 "The given key was not present in the dictionary." 更好的方法是: "The given key '" + key.ToString() + "' was not present in the dictionary." 解决方案可能涉及mixin或派生类。



5
如何在Promise中捕获未捕获的异常
有什么办法可以全局地捕获所有异常,包括Promise异常。例: window.onerror = function myErrorHandler(errorMsg, url, lineNumber) { alert("Error occured: " + errorMsg);//or any message return false; } var myClass = function(){ } var pr = new Promise(function(resolve, react){ var myInstance = new myClass(); myInstance.undefinedFunction(); // this will throw Exception resolve(myInstance); }); pr.then(function(result){ console.log(result); }); // i know right will …

7
在Swift中捕捉NSException
Swift中的以下代码引发NSInvalidArgumentException异常: task = NSTask() task.launchPath = "/SomeWrongPath" task.launch() 如何捕获异常?据我了解,Swift中的try / catch是针对Swift中引发的错误,而不是针对NSTask之类的对象引发的NSExceptions(我猜是用ObjC编写的)。我是Swift的新手,所以可能我缺少明显的东西... 编辑:这是该错误的雷达(专门针对NSTask):openradar.appspot.com/22837476

5
参数化查询…期望参数“ @units”(未提供)
我收到此异常: 参数化查询'(@Name nvarchar(8),@ type nvarchar(8),@ units nvarchar(4000),@ rang'期望使用未提供的参数'@units'。 我的插入代码是: public int insertType(string name, string type, string units = "N\\A", string range = "N\\A", string scale = "N\\A", string description = "N\\A", Guid guid = new Guid()) { using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); SqlCommand command = new SqlCommand(); …

4
我的方法应该抛出自己的异常,还是如果文件不存在而让.NET抛出?
这是我的代码: public void ReadSomeFile(string filePath) { if (!File.Exists(filePath)) throw new FileNotFoundException(); var stream = new FileStream(filePath, ....) ..... } 我是否应该自己抛出异常(请参阅File.Exists检查)?如果文件不存在,FileStream将已经抛出FileNotFoundException。这里有什么好的编程习惯?代码分析表明,我们应该验证参数。但是,如果我将该参数直接传递给另一个方法(我的代码或其他代码),并且该方法本身会引发异常,那么在我的代码中验证参数的好处是什么?
75 c#  exception 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.