小编Kor*_*gay的帖子

如果没有处理,则抛出相同的异常,或者构造一个新的异常?

项目编号6的这个文章指出:

尽量不要因为价格而重新抛出异常.如果重新投掷是必须的,重新抛出相同的异常,而不是创建一个新的异常.这将带来额外的性能.您可以在每个图层中向该例外添加其他信息.

好吧,但这违反了层的分离,不是吗?

假设我有一个抛出SQLException的DAO的特定实现

假设我的服务层(或业务层......)从DAO层调用方法,但决定不处理抛出的异常.

如果我将SQLException重新抛出到视图层,我的视图层将不仅会耦合到DAO层,不是吗?

是不是正确抛出一个新的异常,使查看依赖只有下面一层一层,而不是两个?

抛出相同的Exception会带来什么优势,除了性能?

java exception

5
推荐指数
1
解决办法
106
查看次数

为什么我不允许将Java源代码文件中的字符用作变量名?

Java变量名中可以使用的字符有哪些规则?

我有这个示例代码:

public class Main {
    public static void main(String[] args)  {
        int k = 4;
        System.out.println(s);
    }
}
Run Code Online (Sandbox Code Playgroud)

哪个不会编译:

javac Main.java
Main.java:3: error: illegal character: '\udd1e'
        int k = 4;
              ^
1 error
Run Code Online (Sandbox Code Playgroud)

那么为什么Java编译器会为''抛出错误?(\ uD834\uDD1E)

在ideone.com中也是如此:http://ideone.com/fnmvpG

java compilation character-encoding

5
推荐指数
1
解决办法
111
查看次数

我可以使用Bamboo Rest - API下载Bamboo构建的工件吗?

页面说明:

Bamboo的REST API提供以下功能:

  • 检索构建的工件.

在这里我看到的文档:

http://myhost.com:8085/bamboo/rest/api/latest/plan/ {projectKey} - {buildKey}/artifact [GET]

当我尝试这个与竹子服务器的链接时,我喜欢:

https://my.bamboo.server/rest/api/latest/plan/MY-PLAN/artifact
Run Code Online (Sandbox Code Playgroud)

我得到的只是:

<artifacts expand="artifacts">
    <link href="http://my.bamboo.server/rest/api/latest/plan/MY-PLAN/artifact" rel="self"/>
    <artifacts start-index="0" max-result="0" size="0"/>
</artifacts>
Run Code Online (Sandbox Code Playgroud)

所以我理解REST文档完全错误,或者MY-PLAN可能有什么问题,这个链接应该像我期望的那样为我提供一个war文件?

rest bamboo continuous-delivery

5
推荐指数
1
解决办法
3952
查看次数

org.apache.commons.net.ftp.FTPSClient 在列表命令后返回 425

我正在尝试连接到 FTPS 服务器。我可以很好地连接 FileZilla 并列出服务器中的文件、下载等。

在此输入图像描述

我正在尝试使用 org.apache.commons.net.ftp 包中的 FTPSClient 使用 Java 连接到此 FTP 服务器。这就是我正在尝试的方式:

FTPSClient ftp = new FTPSClient();
ftp.connect(HOST, 7021);
ftp.enterLocalPassiveMode();
ftp.login(USERNAME, PASSWORD);
final int list = ftp.list();
System.out.println("List returned: " + list);
Run Code Online (Sandbox Code Playgroud)

我得到的回应是:

FTPSClient ftp = new FTPSClient();
ftp.connect(HOST, 7021);
ftp.enterLocalPassiveMode();
ftp.login(USERNAME, PASSWORD);
final int list = ftp.list();
System.out.println("List returned: " + list);
Run Code Online (Sandbox Code Playgroud)

根据维基百科,425 的意思是:“无法打开数据连接”。

但是,尝试创建一个文件夹效果很好:

FTPSClient ftp = new FTPSClient();
ftp.connect(HOST, 7021);
ftp.enterLocalPassiveMode();
ftp.login(USERNAME, PASSWORD);
ftp.mkd("/laylaylom");
Run Code Online (Sandbox Code Playgroud)

因此,如果我运行此代码并连接 FileZilla,我将在 FTP 服务器中看到文件夹“laylaylom”。

我也尝试过:

FTPSClient ftp = new …
Run Code Online (Sandbox Code Playgroud)

java apache ftp ftps apache-commons-net

5
推荐指数
1
解决办法
3005
查看次数

Java中Enum类型实例变量的默认值是什么?

这是我的示例代码:

enum A {
    A,
}

class TestA {
    A a;
    public static void main(String[] args) {
        final TestA testA = new TestA();
        System.out.println(testA.a);
        System.out.println(testA.a.A);
    }
}
Run Code Online (Sandbox Code Playgroud)

哪个会打印:

null
A
Run Code Online (Sandbox Code Playgroud)

如果未初始化的实例Enum变量的默认值为null,那么访问Enum实例的工作原理是什么?

java enums

5
推荐指数
1
解决办法
4775
查看次数

C头文件的实现?

我是学C语言,并通过一些头文件在Linux目录被偷看/usr/includestdio.h,stdlib.h等真正困扰着我的是我看到的所有功能与定义extern的关键字,这意味着它们只能被没有任何定义,例如声明:

extern FILE *fopen (__const char *__restrict __filename,
                    __const char *__restrict __modes) __wur;
Run Code Online (Sandbox Code Playgroud)

每个其他头文件中的每个其他函数也是如此.我的问题是,如果他们只被宣布在他们的实施的哪里?他们必须在某个地方实施吗?

c implementation header system file

4
推荐指数
3
解决办法
5358
查看次数

PHP文档中的参数,方括号?

这个功能例如......

int preg_match_all ( string $pattern , string $subject [, array &$matches [, int $flags = PREG_PATTERN_ORDER [, int $offset = 0 ]]] )
Run Code Online (Sandbox Code Playgroud)

它需要字符串$pattern$subject.但是,是什么[

php function

4
推荐指数
1
解决办法
1161
查看次数

为什么这个array_filter方法没有调用这个函数?

private static function returnSameElementIfNotEmpty($item) {
    if (empty($item)) {
        return false;
    }
    else{
        return true;
    }
}


public static function clean($array) {
    return array_filter($array, 'returnSameElementIfNotEmpty');
}
Run Code Online (Sandbox Code Playgroud)

当我尝试使用示例数组运行时,我得到:

警告:array_filter()要求参数2是有效的回调函数,函数'returnSameElementIfNotEmpty'未找到,或者在第27行的C:\ Framework\ArrayMethods.php中找到无效的函数名称

php callback array-filter

4
推荐指数
1
解决办法
2499
查看次数

Java java.util.Calendar中区域设置的目的是什么?

我通过java.util.Calendar获取有关Java中特定日期的信息(例如一周,一个月,一年中的一天).在我的情况下,是否有某些理由为日历对象设置区域设置?我问是因为:

System.out.println(cal.get(Calendar.DAY_OF_WEEK));
Run Code Online (Sandbox Code Playgroud)

今天(星期日)的返回值始终为1,但在我们的区域设置(cs_CZ)中,它应为7.

Locale locale = new Locale("cs", "CZ");
TimeZone tz = TimeZone.getTimeZone("Europe/Prague");

Calendar cal = GregorianCalendar.getInstance(tz, locale);
cal.setTime(new Date());

// returns => 1 (but I expected 7)
System.out.println(cal.get(Calendar.DAY_OF_WEEK)); 
// returns => 3 - it's OK
System.out.println(cal.get(Calendar.DAY_OF_MONTH));
Run Code Online (Sandbox Code Playgroud)

编辑:我可以在周日使用1,但我必须确保这是不变的行为,无论使用Locale还是TimeZone.

java locale calendar date

4
推荐指数
1
解决办法
1万
查看次数

每次在C++中生成相同的随机数

这是我的代码:

int main(int argc, char** argv) {

    int sleeptime = atoi(argv[1]);    
    int sleepCount = atoi(argv[2]);

    int sleepTimeRandom = 1 + (rand() % (int)(sleeptime));
    int sleepCountRandom = 1 + (rand() % (int)(sleepCount));

    sleepTimeRandom = sleepTimeRandom * 1000;

    DWORD id = GetCurrentProcessId();

    cout << "\n\nProcess with id " << id << " will sleep for " << sleepTimeRandom << " milliseconds\n";
    cout << "\n\nProcess with id " << id << " will sleep " << sleepCountRandom << " times \n";
Run Code Online (Sandbox Code Playgroud)

当我打电话给exe时

sleeper …
Run Code Online (Sandbox Code Playgroud)

c++ random

4
推荐指数
2
解决办法
6094
查看次数