【发布时间】:2011-01-03 00:08:59
【问题描述】:
我发现阅读编码风格指南是了解一门语言及其特性的最佳方式。我一直在努力为 Java 找到一个好的文档,并立即得到一些问题的答案。
首先,很长的行的惯例是什么?用 Java 和 C/C++ 编写让我在这一点上有很多困惑。
其次,创建自定义异常类的准则是什么?我通常最终抛出一个现有的异常,而不是创建自己的异常。通常会强制执行自定义异常创建吗?
【问题讨论】:
标签: java coding-style
我发现阅读编码风格指南是了解一门语言及其特性的最佳方式。我一直在努力为 Java 找到一个好的文档,并立即得到一些问题的答案。
首先,很长的行的惯例是什么?用 Java 和 C/C++ 编写让我在这一点上有很多困惑。
其次,创建自定义异常类的准则是什么?我通常最终抛出一个现有的异常,而不是创建自己的异常。通常会强制执行自定义异常创建吗?
【问题讨论】:
标签: java coding-style
【讨论】:
我将从 Sun/Oracle Java coding standards 开始。
对于行的字符宽度没有 100% 的硬性标准。我会说介于 80-120 个字符之间。更大、更宽的屏幕会让我不那么担心这一点。
我同意标准例外通常对我来说已经足够好了。我可能会为具有特殊业务意义的自定义异常子类,但这些子类很少而且相差甚远。我会说 Java 的最新风格是更喜欢未经检查的异常,更像是 C#。
【讨论】:
作为编码约定的简要说明:
class SomeClassName { //<-- Class with upper case, camel case
public static final int CONSTANT_SOMETIHNG = 0x2A; // constants all upper case
private int secretVariable; // variables start with lowercase
public void someMethod() { // methods too
// opening brace goes in the same line
if( cond ) {
...
} else {
...
}
for( .. ) {
}
while( ... ) {
}
try {
} catch() {
} finally {
}
// closing brace aligned to the element start
}
}
}
等等。等等。
【讨论】:
Joshua Bloch 的“Effective Java”是一本重要的读物。它超出了 Oracle 提供的语法指南。
第 60 项是“支持使用标准异常”,但第 61 项是“抛出适合抽象的异常”。有时会调用自定义异常,有时则不会。
【讨论】:
可能重复的问题。你可以在这里找到答案:https://stackoverflow.com/questions/1334204/official-java-code-guidelines-conventions
但是,Sun/Oracle 网站上的文档已超过 12 年。虽然核心语言没有改变,但技术变化很快,这意味着我们使用该技术的方式发生了变化。
我建议使用最适合您和您的团队的方法。只要您的组织内有一些被认为是主流的公认标准,您应该没问题。
【讨论】:
当人们使用 80 个字符宽的文本编辑器时,行长曾经是一个更大的问题。如今,大多数开发人员都拥有高分辨率的宽屏幕,因此在 Java 中以 80 个字符换行可能实际上是一种损害,如果它迫使其他人向下滚动更多并在右侧有空格。记下谁可能正在查看您编写的代码并将其包装成适当的长度。
我对自定义异常类的看法是尽可能使用已经存在的任何东西。但是,有时您需要一个不存在的异常类,因此如果有意义,请不要犹豫创建一个。
【讨论】: