Java的一些异常处理

Posted by Zeusro on July 20, 2018
👈🏻 Select language

这方面的资料不胜枚举,此文仅供本人备忘用.

1
2
3
4
5
6
7
8
9
10
11
12
13
    static String a() {
        try {
            throw new RuntimeException("a");
        } catch (RuntimeException e) {
            return "d";
        } catch (Exception e) {
            return "b";
        } finally {
            return "c";
        }
//        return "d";
    }

这段代码最终返回值是”c”.因为 finally 总是会执行.那这就跟 C#有点不一样了.所以记住,finally 一般是做一些资源的清理,不要在这里面返回值.

参考链接:

  1. 重新认识Java语言——异常(Exception)
  2. 深入理解java异常处理机制
  3. Java 异常处理及其应用
  4. Java 异常处理的误区和经验总结

There’s no end to materials on this topic. This article is just for my own reference.

1
2
3
4
5
6
7
8
9
10
11
12
13
    static String a() {
        try {
            throw new RuntimeException("a");
        } catch (RuntimeException e) {
            return "d";
        } catch (Exception e) {
            return "b";
        } finally {
            return "c";
        }
//        return "d";
    }

This code ultimately returns “c”. Because finally always executes. This is a bit different from C#. So remember, finally is generally for resource cleanup—don’t return values here.

References:

  1. Rediscovering the Java Language—Exceptions (Exception)
  2. Deep Understanding of Java Exception Handling Mechanism
  3. Java Exception Handling and Its Applications
  4. Java Exception Handling Misconceptions and Experience Summary

Материалов по этой теме бесчисленное множество. Эта статья только для моей собственной справки.

1
2
3
4
5
6
7
8
9
10
11
12
13
    static String a() {
        try {
            throw new RuntimeException("a");
        } catch (RuntimeException e) {
            return "d";
        } catch (Exception e) {
            return "b";
        } finally {
            return "c";
        }
//        return "d";
    }

Этот код в конечном итоге возвращает “c”. Потому что finally всегда выполняется. Это немного отличается от C#. Так что помните, finally обычно для очистки ресурсов—не возвращайте значения здесь.

Ссылки:

  1. Переосмысление языка Java—Исключения (Exception)
  2. Глубокое понимание механизма обработки исключений Java
  3. Обработка исключений Java и её применение
  4. Заблуждения и обобщение опыта обработки исключений Java


💬 讨论 / Discussion

对这篇文章有想法?欢迎在 GitHub 上发起讨论。
Have thoughts on this post? Start a discussion on GitHub.

在 GitHub 参与讨论 / Discuss on GitHub