小编L1g*_*ira的帖子

抛出 Exception 与抛出特定异常(如 NullPointerException)的区别

我想知道只Exception抛出和抛出一个特定的异常有什么区别,比如NullPointer Exception.

据我目前所知,Exception应该能够捕获任何类型的异常,因为使用特定的 Exception 期望只能抛出该异常类型。

例子:

void test(String testString) throws Exception;
Run Code Online (Sandbox Code Playgroud)

对比

void test(String testString) throws NullPointerException;
Run Code Online (Sandbox Code Playgroud)

如果这对我来说是正确的,那么总是抛出异常并且从不命名特定异常是有意义的。我在这里遗漏了什么重要的东西吗?它至少会影响性能吗?很多人在抛出和捕获异常之间寻找,但没有人问这个非常基本的问题。

我没有看到抛出任何异常的好处,除了Exception.

language-agnostic exception-handling exception throws

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

Javascript按字母顺序排序并将所有双打移动到数组的末尾

我试图通过属性对对象数组进行排序.我跑:

array.sort(function(a, b){
  var textA = a.name.toUpperCase();
  var textB = b.name.toUpperCase();
  return (textA < textB) ? -1 : (textA > textB) ? 1: 0
});
Run Code Online (Sandbox Code Playgroud)

首先按字母顺序对数组对象进行排序,然后使用自定义比较函数运行array.sort,如下所示:

array.sort(function(a, b){
  if(a.name === b.name){
    return -1;
  }
  return 1;
});
Run Code Online (Sandbox Code Playgroud)

它似乎适用于没有重复的任何对象,但是,只要有双打它就将它们全部推送到数组的末尾而不仅仅是附加内容.

例:

[
  {name: 'Amy'},
  {name: 'Amy'},
  {name: 'Clark'},
  {name: 'Clark'},
  {name: 'Dan'},
  {name: 'Dave'}
  {name: 'Joe'},
  {name: 'Joe'}
]
Run Code Online (Sandbox Code Playgroud)

预期产出:

  • 艾米
  • 克拉克
  • 戴夫
  • 艾米
  • 克拉克

实际结果:

  • 戴夫
  • 艾米
  • 艾米
  • 克拉克
  • 克拉克

排序代码尝试获得预期结果

array.sort(function(a,b){
  if(a.name === b.name){return …
Run Code Online (Sandbox Code Playgroud)

javascript arrays sorting object

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

茉莉花间谍在打字稿类 Get() 或 Set() 函数

我正在使用 Jasmine 2.9 并且我在监视一个函数时没有问题,无论它是公共的还是私有的,但是我在尝试监视类级别的getorset函数时遇到了困难。

private class RandomService {
  public dogsHealth = 0;

  private get personsFullName(): string {
    return firstName + lastname;
  }

  private set personsLocation(address: string, city: string, country: string): string {
    return address + city + country;
  }

  public get dogsFullName(): string {
    return dogFirstName + dogLastName;
  }

  public get isDogAlive(): boolean {
    return dogsHealth <= 0 ? true : false;
  }
}
Run Code Online (Sandbox Code Playgroud)

我试过的解决方案:

spyOnProperty(RandomService, 'dogsFullName', 'get').and.returnValue(true);
spyOnProperty(RandomService, 'dogsFullName').and.returnValue(true);
spyOn(RandomService, 'dogsFullName').and.returnValue(true);
spyOnProperty(RandomService.dogsFullName, 'dogsFullName', 'get').and.returnValue(true);
Run Code Online (Sandbox Code Playgroud)

目前我还没有在网上找到解决方案,但会继续寻找。我知道 …

unit-testing jasmine typescript karma-jasmine angular

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

AngularJS:在控制器中注入时,工厂始终未定义

我正在尝试一个AddressBook Angular应用程序的简单示例.我有一个工厂,它返回一个记录数组,它使用List控制器显示在列表视图中

angular.module('abModule', ['ngRoute'])
.factory('AddressBook', function() {
    var address_book = [
        {
            "id": 1,
            "first_name": "John",
            "last_name": "Doe",
            "age": 29
        },
        {
            "id": 2,
            "first_name": "Anna",
            "last_name": " Smith",
            "age": 24
        },
        {
            "id": 3,
            "first_name": "Peter",
            "last_name": " Jones",
            "age": 39
        }
    ];
    alert('inside factory function');
    return {
        get: function() {
            return address_book
        }
    };
})
.config(function($routeProvider) {
    $routeProvider
    .when('/', {
        controller:'list_controller',
        templateUrl:'list.html'
    })
    .when('/add', {
        controller:'add_controller',
        templateUrl:'add.html'
    })
    .otherwise({
        redirectTo:'/'
    });          
})
.controller('list_controller',['$scope', function ($scope, AddressBook) {
    $scope.address_book …
Run Code Online (Sandbox Code Playgroud)

factory dependency-injection controller angularjs

3
推荐指数
1
解决办法
7130
查看次数

Angular JS ng-Messages 不显示错误消息

我是使用 Angular JS 进行表单验证的新手,所以我环顾四周,发现了一个很好的教程。该教程可以在这里找到。我知道 Stack Overflow 上有一些帖子是关于ng-messages但我查看了它们,它们似乎与我的问题无关。

我已经ng-messages使用 bower安装并使用grunt. 没有错误,但是我的验证消息似乎没有触发。

我的 HTML 如下:

<form name="myForm" novalidate>
  <fieldset>

    <div id="number" ng-class="{ 'has-error' : myForm.clientNumber.$invalid && !myForm.clientNumber.$pristine }">
      <label for="client">SRF #: *</label>
      <input type="text" name="clientNumber" placeholder="Enter SR #" ng-minlength="3" ng-maxlength="9" required>
      <div ng-messages="myForm.clientNumber.$error">
        <!--<div ng-message="required" >SRF # is required.</div>-->
        <div ng-message="minlength" >SRF Number is too short.</div>
        <!--<div ng-message="maxlength">SRF Number is too long.</div>-->
       </div>
     </div>
   </fieldset>
</form>
Run Code Online (Sandbox Code Playgroud)

我的 app.JS 的一部分如下:

angular
  .module('myApp', [
  // Angular …
Run Code Online (Sandbox Code Playgroud)

validation angularjs gruntjs bower ng-messages

3
推荐指数
1
解决办法
3988
查看次数

将未知数量的Input元素绑定到MVC5中的模型

我是MVC5和C#的新手,我正在努力实现一些我不完全理解的东西.

我有一个像这样的团队模型:

public class Team
{
    [Key]
    public Guid ID { get; set; }
    public string TeamName { get; set; }
    public string Coach { get; set; }
    public string Conference { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我也有像这样的玩家模型:

public class Player
{
    [Key]
    public Guid Id { get; set; }
    [ForeignKey("Teams")]
    public Guid TeamId { get; set; }
    public string Name { get; set; }
    public virtual Team Teams { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

查看模型是

public class TeamViewModel
{
    public string …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc-5

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

Angular + Nativescript 代码共享项目移除操作栏

我的项目正在使用 Angular + Nativescript 代码共享项目为 Android 和 IOS 的 web 以及移动构建。

问题是试图删除整个应用程序的操作栏。我已经阅读了一些关于这个问题的帖子,但是似乎没有一个解决方案有效,或者至少最终不是一个很好的解决方案。

我试图添加<Page actionBarHidden="true"></page>但是这app.component在包含路由的其他组件中或在其他组件中根本不起作用,例如 a home.componentwith the route home。如:

<Page actionBarHidden="true">
  <StackLayout orientation="vertical">
    <Image src="res://buy" stretch="none" horizontalAlignment="center"></Image>
  </StackLayout>
</Page>
Run Code Online (Sandbox Code Playgroud)

我还尝试了一种专门针对 android 的方法,看看我是否可以通过AndroidManifest.xml文件解决这个问题,就像我通过更新 android 清单来删除操作栏来制作本机 Android 应用程序一样。对于健全性测试,我还尝试通过以下方式使用它styles.xml

<style name="AppThemeNoActionBar" parent="AppTheme">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>
Run Code Online (Sandbox Code Playgroud)

在这些失败的尝试之后,我尝试了其他人推荐的以下代码,Page例如:

import { Page } from 'tns-core-modules/ui/page';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.scss']
})
export class AppComponent implements OnInit {

  ngOnInit() {
    this.page.actionBarHidden …
Run Code Online (Sandbox Code Playgroud)

android-actionbar nativescript angular nativescript-codesharing angular-nativescript

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

Android Canvas:创建 RoundRectShape 对象

我为矩形创建了一个类,因为它是我的应用程序中的一个对象。但是现在我希望角落是圆的。在下面你可以看到它是一个简单的骨骼类,用于创建我想要的具有相同属性的任意数量的矩形。

public class customDrawable extends ShapeDrawable {

    public void setCustomDrawableAttributes(ShapeDrawable shapeDrawable){
       int x = 0;
       int y = 0;
       int width = 100;
       int height = 100;
       shapeDrawable.setBounds(x, y-height, x + width,y+height );
   }

   public ShapeDrawable createShape(){
       return new ShapeDrawable(new RectShape());
   }

}
Run Code Online (Sandbox Code Playgroud)

更新:如果没有这种方法,我将无法绘制任何内容,因为没有大小。有了它,它只绘制通常的矩形。(更改为不显示特定于应用程序的方法的整数值)

public void setDrawableAttributes(ShapeDrawable shapeDrawable){
   int x = 0;
   int y = 500
   int width = 200
   int height = 300
   shapeDrawable.setBounds(x, y-height, x + width,y+height );
Run Code Online (Sandbox Code Playgroud)

}

从我的研究中,我发现我不能简单地添加圆角,而是必须创建一个RoundRectShape shapeDrawable. 我使用此方法创建带圆角的矩形的每次尝试都RoundRectShape失败了。不知何故,形状总是最终成为一个没有圆角的规则矩形。

我正在寻找一个简单的骨骼类(就像提供的那个),它创建一个 roundRectShape …

java android android-canvas shapedrawable android-shapedrawable

0
推荐指数
1
解决办法
3329
查看次数