小编Gia*_*rco的帖子

在java中使用一个大的try-catch per方法是一个众所周知的好习惯吗?

我最近接受过采访,面试官希望我做一个技术测试,看看我的知识.在我完成它之后,他给了我关于我是如何做到这一点的反馈,这是我没想到的,我很感激,因为如果他们不想雇用你,很少有采访者这样做.

他告诉我他告诉我他的代码不好的一件事是我在我编写的每个方法中使用了多个try-catch块.这引起了我的注意,因为我觉得它很有趣.

我相信目前我应该创建try-catch块,其中有一个语义可区分的代码块,它有一个或多个方法可以抛出需要捕获的异常.我遵循的唯一例外是,如果两个方法抛出相同的异常类型,我最好将它们放在不同的try-catch块中,以清楚地区分调试抛出异常的位置和原因.

这与采访者希望我做的完全不同.那么每种方法只使用一个try-catch块是一种已知的良好实践吗?如果这是一个众所周知的良好做法,这样做有什么好处?

编辑:我非常感谢您对此的看法,这非常好.虽然请注意我在问这是否是一个已知的良好做法.这是,如果大多数程序员都同意这一点,或者这是一本书中的好习惯

java exception-handling try-catch

58
推荐指数
7
解决办法
2万
查看次数

我在哪里放置Elasticsearch的映射文件?

我对ES文档感到困惑,事实上他们在这里声明索引必须在映射dir(和indexname sub dirs)中:

可以在名为[mapping_name] .json的文件中定义映射,并将其置于config/mappings/_default位置下,或置于config/mappings/[index_name]下(对于应仅与特定索引关联的映射).

但后来这里的"配置"一节中,它指出:

索引模板也可以放在模板目录下的配置位置(path.conf)中(注意,确保将它们放在所有符合条件的主节点上).例如,名为template_1.json的文件可以放在config/templates下,如果它与索引匹配,则会添加它.

我把我的映射放进去/config/mappings/myindexname/mappinfile.json,它就像:

{
    "template": "maincontentindex",
    "settings": {
        "index": {
            "analysis": {
                "analyzer": {
                    "htmlStrippingAnalyzer": {
                        "tokenizer": "standard",
                        "filter": ["standard", "lowercase"],
                        "char_filter": "html_strip"
                    }
                }
            }
        }
    },

    "mappings": {
        "rendition": {
            "_timestamp": {
                "enabled": true,
                "store" : true
            },
            "properties": {
                "key": {
                    "type": "string",
                    "store": "yes",
                    "analyzer": "keyword"
                },
                "parentPage": {
                    "type": "string",
                    "store": "yes",
                    "analyzer": "keyword"
                },
                "type": {
                    "type": "string",
                    "store": "yes",
                    "analyzer": "keyword"
                }, …
Run Code Online (Sandbox Code Playgroud)

json elasticsearch

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

线程"main"中的异常java.lang.NumberFormatException:对于输入字符串:"S"

当我尝试将Integer.parseInt()与单个char一起使用时,我收到此错误.

String s = "s";
System.out.println((char) Integer.parseInt(s));
Run Code Online (Sandbox Code Playgroud)

是什么让我错误是这样的:

Exception in thread "main" java.lang.NumberFormatException: For input string: "S"
Run Code Online (Sandbox Code Playgroud)

java integer

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

AngularJS,D3和JQuery在同一页面中.D3无法读取正确的DOM维度

我正在努力处理无法正常加载的页面.我在html5和CSS3中使用了一个简单的header-body-footer结构.

    +----------+
    |  HEADER  |
+---+----------+---+
|       BODY       |
+---+----------+---+
    |  FOOTER  |
    +----------+
Run Code Online (Sandbox Code Playgroud)

我现在正在做的是在车身空间内创建一个带有D3的svg,在加载窗口后动态读取宽度和高度(还有图片).

现在我想添加角度以避免站点的每个页面内的代码冗余,我这样做:

(function() {
    var app = angular.module('neo4art', []);

    var pages = {
            "genesis.html": "The genesis of the project",
            "about.html": "About Us",
            "team.html": "The Team",
            "index.html": "Traversing Art Through Its Connections"
    }

    app.directive("header", function() {
        return {
            restrict : 'E',
            templateUrl : 'header.html'
        };
    });
    app.directive("footer", function() {
        return {
            restrict : 'E',
            templateUrl : 'footer.html'
        };
    });

    app.controller('menuController', function($scope, $location, rememberService){
        $scope.isActive = function(route){
            return …
Run Code Online (Sandbox Code Playgroud)

javascript jquery d3.js angularjs

9
推荐指数
1
解决办法
579
查看次数

角度选择和ng选项

我有这个角度选择:

<select ng-model='obj.status' ng-options='status.code as (status.code + " " + status.phrase) for status in status_codes.data track by status.code'>`
Run Code Online (Sandbox Code Playgroud)

$scope.status_codes是这样的:

data: [
{
       "code":"100",
       "phrase":"...",
       "spec_title":"RFC7231#6.2",
       "spec_href":"http://tools.ietf.org/html/rfc7231#section-6.2"
}
...
]
Run Code Online (Sandbox Code Playgroud)

$scope.obj.status当我更改我的选择时,我的更新为"300"或"100"或其他任何内容,但选择的显示始终为空白.因此,模型更新为选择输入的选定值,但输入未显示当前选定的值,它显示空白项.

如果我改变ng-options是ng-options='status as (status.code ...'有效的,但我只想在我的模型中使用status.code,而不是整个状态数组.是什么赋予了?

{{obj | json }}在我的HTML和记载:

obj = {
  "name": "",
  "description": "",
  "payload": "",
  "status": "200",
  "responseHeaders": {
    "entry": [
      {
        "key": "",
        "value": ""
      },
      {
        "key": "",
        "value": ""
      }
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

javascript angularjs angularjs-ng-options angularjs-track-by

9
推荐指数
1
解决办法
4589
查看次数

HSQLDB对象名已存在

我正在尝试使用2.2.9版,Hibernate 3.6.9和Spring 3.1.2建立一个HSQL数据库进行测试.我们一直在使用本地postgresql数据库,但正在进行测试.我有40-50个测试类,共有200多个测试.如果从eclipse单独运行,每个测试类都可以正常工作.当我使用Maven编译和测试所有测试错误时.在某些时候,它似乎试图再次运行我的init.sql脚本并再次创建表.我把这作为我的最终原因:

Caused by: org.hsqldb.HsqlException: object name already exists: DUAL_ASSET_ASSETID_SEQ
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.error.Error.error(Unknown Source)
at org.hsqldb.SchemaObjectSet.checkAdd(Unknown Source)
at org.hsqldb.SchemaManager.checkSchemaObjectNotExists(Unknown Source)
at org.hsqldb.StatementSchema.setOrCheckObjectName(Unknown Source)
at org.hsqldb.StatementSchema.getResult(Unknown Source)
at org.hsqldb.StatementSchema.execute(Unknown Source)
at org.hsqldb.Session.executeCompiledStatement(Unknown Source)
at org.hsqldb.Session.executeDirectStatement(Unknown Source)
at org.hsqldb.Session.execute(Unknown Source) ... 52 more 
Run Code Online (Sandbox Code Playgroud)

我在创建该表时尝试使用'IF NOT EXISTS',但是当我创建序列时,我遇到了同样的错误.所以它试图做的不仅仅是那一个表,我不能在CREATE SEQUENCE语句中使用'IF NOT EXISTS',所以我被困在那里.

我的数据似乎再次加载有什么原因吗?我偶尔也会遇到这个错误:

2012-10-16 10:55:48,489 [Thread-0] WARN
org.springframework.jdbc.datasource.embedded.HsqlEmbeddedDatabaseConfigurer:shutdown:46 - Could not shutdown embedded database java.sql.SQLException: Database lock acquisition failure: attempt to connect while db opening /closing
at org.hsqldb.jdbc.Util.sqlException(Unknown Source)
at org.hsqldb.jdbc.Util.sqlException(Unknown Source) …
Run Code Online (Sandbox Code Playgroud)

hsqldb

8
推荐指数
1
解决办法
7936
查看次数

是否可以通过编程方式启用"显示布局边界"开发人员选项?

例如,我可以使用以下方法操作ADB调试:

Settings.Secure.putInt(getActivity().getContentResolver(),Settings.Secure.ADB_ENABLED, 1);
Run Code Online (Sandbox Code Playgroud)

是否可以以类似的方式启用"显示布局边界"选项?我一直无法找到任何文件.

android android-layout

7
推荐指数
1
解决办法
2539
查看次数

使用CSS镜像文本的第一个字母

我搜索了很多方法来做我想做的事,但我只找到了一些我无法使用的方法.

问题是:我想只镜像Wordpress网站标题的第一个字母.

我有这个Css:

.site-title {
    font-family: fontLogo;
    font-size: 60px;
    font-weight: bold;
    line-height: 1;
    margin: 0;
    padding: 58px 0 10px;
}
Run Code Online (Sandbox Code Playgroud)

我添加了这篇文章:

.site-title::first-letter {
    font-size: 80px;
    -moz-transform: scale(-1, 1);
    -webkit-transform: scale(-1, 1);
    -o-transform: scale(-1, 1);
    -ms-transform: scale(-1, 1);
    transform: scale(-1, 1);
}
Run Code Online (Sandbox Code Playgroud)

该类在这里使用:

<h1 class="site-title">TheTitle</h1>
Run Code Online (Sandbox Code Playgroud)

第二个问题是我不能编辑这一行,我唯一能做的就是使用css(我也尝试>span>在WordPress的Title编辑器中键入a 而没有成功.

CSS实际上只是字母的比例,从60px到80px,但没有任何镜像.

我被封锁了,需要小费

css mirror css3

7
推荐指数
2
解决办法
925
查看次数

Websphere Application Server配置文件与WAS版本之间的差异

我目前正在尝试构建一个Websphere集群,但是Websphere Application服务器版本的名称(如Base,Developers,Network deployment等)和Profiles的概念让我感到困惑.

  1. 各种Websphere服务器版本(如Base,Express,Network Deployment等)中的代码库是否存在差异?

  2. Network Deployment版本是唯一支持群集的版本吗?

  3. 如果我在任何其他版本(如开发人员的WAS等)上构建dmgr配置文件,我可以让群集工作吗?

  4. 使用Installation Manager是在Linux上安装WAS 8.5 Network Deployment版本的唯一方法吗?我在这个博客http://ianrobinson.blogspot.in/中读到了另一种更简单的方法,但我不确定这是否适用于安装Network Deployment版本.

  5. WAS开发人员的版本与Network Deployment版本有何不同?

java websphere

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

Java将一个虚线或虚线边框添加到JPanel

我遇到了这个问题:在某种程度上,我可以在JPanel中添加一个虚线(或虚线,无关)边框吗?

我搜索了SO问题,但似乎没有人问过这个问题.

我想知道是否有任何课程可供使用.实际上我正在使用:

myPanel.setBorder(BorderFactory.createLineBorder(Color.BLACK));
Run Code Online (Sandbox Code Playgroud)

显然这是一个标准类,只提供几个标准边框,没有人对我有用.

java border jpanel dotted-line

5
推荐指数
2
解决办法
6367
查看次数