Unity - A计划(永久有效期) 扫二维码继续学习 二维码时效为半小时

(197评价)
价格: 4431.00元
try catch finally的问题
shuaibi发起了话题2017-08-10
4
回复
681
浏览

我以为try是对一个可以能出现异常的代码进行判断,并且在catch代码块中进行修改。

为什么这个是一个异常,但是没有修改只是进行了输出。 那这样子有什么用呢?

是不是try catch finally本身的意思就是来捕捉和提醒的,不是来进行修改的呢?

所有回复
  • sdhexu 2017-08-10

    try catch 是语法层面上的异常处理。在不同平台下处理机制是不同的。

    如果你想要那种可以修改并且重试的异常处理,以Windows平台为例,你得使用SEH异常处理。

    你可以百度一下SEH异常处理。这种异常处理,除了常规的异常处理功能外,可以实现对异常的过滤,甚至修正某些数据后重新执行抛出异常的代码,这种功能比较好,很多时候可以提高效率。比如,要开发一个Excel表格程序,你可以先假定用户访问的单元格是分配了内存的,这样,当程序访问到没有分配内存的单元格时,会引发异常,然后你捕捉这个异常,判断是不是因为内存未分配导致的,然后你给他分配好内存,再让他重新执行。。。但是,SEH是Windows系统提供的异常机制,与语言无关,在其他平台无效。

    还有-5条回复,点击查看
    你还没有登录,请先登录注册
  • sdhexu 2017-08-10

    try catch 是语法层面上的异常处理。在不同平台下处理机制是不同的。

    如果你想要那种可以修改并且重试的异常处理,以Windows平台为例,你得使用SEH异常处理。

    你可以百度一下SEH异常处理。这种异常处理,除了常规的异常处理功能外,可以实现对异常的过滤,甚至修正某些数据后重新执行抛出异常的代码,这种功能比较好,很多时候可以提高效率。比如,要开发一个Excel表格程序,你可以先假定用户访问的单元格是分配了内存的,这样,当程序访问到没有分配内存的单元格时,会引发异常,然后你捕捉这个异常,判断是不是因为内存未分配导致的,然后你给他分配好内存,再让他重新执行。。。但是,SEH是Windows系统提供的异常机制,与语言无关,在其他平台无效。

    还有-5条回复,点击查看
    你还没有登录,请先登录注册
  • siki 2017-08-10

    ry catch finally本身的意思就是来捕捉和处理的,不是提醒 是处理的,可能出现异常的地方不处理,程序会直接崩溃退出,如果处理的,你可以给一个友情提示,比如让用户重试什么的,不会崩溃

    还有-5条回复,点击查看
    你还没有登录,请先登录注册
  • siki 2017-08-10

    try catch finally 不是用来修改代码的

    还有-5条回复,点击查看
    你还没有登录,请先登录注册
发表回复
你还没有登录,请先 登录或 注册!