OK, so far though, I've just shown you what happens inside a peace a code. It raises an exception. It goes to that accept clause. We don't have to use it just inside of one place.
好了,我已经给你们看了,代码内部发生了什么,它报了一个异常,然后就到了处理的片段,我们不该就在一个地方用它。
I'm going to throw it, or raise it, to use the right term to somebody in case they can handle it, but it's a particular kind of exception I might do something like, remind you I have test.
编译器就要抛出他或者提出它,用正确的描述给某个人来处理,但他的确是一种异常,我来做些类似的事情,告诉你我有些测试。
Last thing to say is why would you want to have exceptions? Well, let's go back to that case of inputting a simple little floating point.
最后要讲的是为什么有异常处理?,回到输入一个简单的小浮点数的例子,如果我期望主要是。
What does that say? It says if in the code up here I get an exception of that sort, I'm going to go to this place to handle it.
这意味着如果在代码中,我得到一个这样的异常,我能到这里来处理它。
I'm much better having an exception get handled at the time of input than to let that prop -- that value rather propagate through a whole bunch of code until eventually it hits an error 17 calls later, and you have no clue where it came from.
不是我期望的格式,这时我最好有一个异常处理,而不是让其传下去,这个值传到代码的整个分支,最终会导致一个错误17调用的发生,并且你不知道这个错误是哪里来的。
So I'm going to distinguish in fact between un-handled exceptions, which are the things that we saw there, and handled exceptions. I'm going to show you in a second how to handle them, but let's look at an example.
所以我打算区分开不可处理的异常,以及我们刚才看到的,可以处理的异常,我一会要给你们演示下如何处理他们,给你们看一个例子。
What do I mean by a handled exception?
那可处理的异常又是什么意思呢?
When we're just interacting with idol, with the interactive editor or sorry, interactive environment if you like, that's what you expect. What's happening is that we're typing in something, an expression it doesn't know how to deal. It's raising the exception, but is this simply bubbling up at the top level saying you've got a problem.
就发生了其中之一是吧,当你在交互数据处理或者是在交互编辑器,抱歉,任何你喜欢的交互式环境中,你可能会遇到这些,如果你在输入什么内容,譬如一个它不知道怎么处理的表达式,它就会报一个异常,但这是否是简单的,把你遇到的问题冒到最顶层呢?
So, summarizing better, assert is something you put in to say to the user, make sure you're giving me input of this type, but I'm going to guarantee you the rest of the code works correctly. Exceptions and exception handlers are saying, here are the odd cases that I might see and here's what I'd like to do in those cases in order to try and be able to deal with them.
所以更好的总结下,断言就是你放在那里告诉用户,保证你输入的是这种类型的,但我能保证剩下的代码运行正确,异常和异常处理做的事,这里有些我能预期的异常情况,并且这里有些情况,我能尝试处理。
应用推荐